<!--问题管理-->

<!--用户权限说明-->
<!--管理员：代码：1，可以做所有的操作;2:可以对问题进行更新，但是不能添加问题，也不能删除问题；3：可以作为审核和批准-->
<!---->
<template >
  <div style="margin: 0;padding: 0">
    <el-container>
      <!--页面表头设计-->
      <el-header style="height: 7vh">
        <el-link class="headMain" href="http://10.255.96.48:3404/">俄动力质量管理系统</el-link>
        <span class="center-text">问题管理</span>
        <el-popover
            placement="top-start"
            title="用户信息"
            width="200"
            trigger="hover">
          <div style="margin-top: 10px">Name：{{useName}}</div>
          <div style="margin-top: 10px">ID:{{useId}}</div>
          <div style="margin-top: 10px" @click="logOut"><el-link>退出</el-link></div>
          <div class="headMain" slot="reference">{{useName}}</div>
        </el-popover>
      </el-header>
      <el-container>
        <el-aside width="200px">
          <div v-if="mianSelect===1">
            <el-divider content-position="left">设备/工艺</el-divider>
            <div style="margin-top:10px;">
              <el-button style="width: 100%"
                         :style="{backgroundColor:buttonBackColor1,color:buttonColor1}"
                         @click="buttonMainSelect(1)">所有环节</el-button>
            </div>
            <div style="margin-top:10px;" >
              <el-button style="width: 100%"
                         :style="{backgroundColor:buttonBackColor2,color:buttonColor2}"
                         @click="buttonMainSelect(2)">装配车间</el-button>
            </div>
            <div style="margin-top:10px;">
              <el-button style="width: 100%"
                         :style="{backgroundColor:buttonBackColor3,color:buttonColor3}"
                         @click="buttonMainSelect(3)">机加车间</el-button>
            </div>
            <div style="margin-top:10px;">
              <el-divider content-position="left">产品不良</el-divider>
            </div>
            <div style="margin-top:10px;">
              <el-button style="width: 100%"
                         :style="{backgroundColor:buttonBackColor4,color:buttonColor4}"
                         @click="buttonMainSelect(4)">零公里问题</el-button>
            </div>
            <div style="margin-top:10px;">
              <el-popover
                  v-model="problemAddORSelect"
                  placement="right"
                  width="350"
                  trigger="manual">
                <el-divider>添加问题</el-divider>
                <div>
                  <el-button size="small" style="width: 100%;" @click="problemAddShow(1)">添加问题</el-button>
                </div>
                <div>
                  <el-upload
                      action="http://10.255.96.48:3499/russiaEngine/"
                      accept=".xlsx,.xls"
                      :limit="1"
                      :auto-upload="false"
                      :on-change="handleFileChange"
                      :file-list="fileListExcel"
                      style="width: 100%">
                    <el-button size="small" style="width: 350px;margin-top: 10px" type="primary" class="flex-button">上传EXCEL</el-button>
                  </el-upload>
                </div>
                <div style="margin-top: 8px">
                  <el-divider>筛选问题</el-divider>
                  <div>
                    <span>发生时间：</span>
                    <el-date-picker
                        type="months"
                        v-model="severalMoon"
                        placeholder="选择一个或多个月"
                        style="width: 280px"
                        size="small">
                    </el-date-picker>
                  </div>
                  <div style="margin-top:15px">
                    <el-checkbox-group v-model="problemSelectList">
                      <el-checkbox label="汇报"></el-checkbox>
                      <el-checkbox label="未结题"></el-checkbox>
                      <el-checkbox label="已结题"></el-checkbox>
                      <el-checkbox label="全部"></el-checkbox>
                    </el-checkbox-group>
                  </div>
                  <div>
                    <el-button
                        style="width: 350px;margin-top: 15px" size="small"
                        @click="problemSelect(1)">筛选</el-button>
                  </div>
                </div>
                <el-button slot="reference" style="width: 100%"
                           :style="{backgroundColor:buttonBackColor5,color:buttonColor5}"
                           @click="buttonMainSelect(5)">市场问题</el-button>
              </el-popover>
            </div>

            <div style="margin-top: 8px">
              <el-button  style="width: 100%"
                          :style="{backgroundColor:buttonBackColor6,color:buttonColor6}"
                          @click="buttonMainSelect(6)">工程内问题</el-button>
            </div>
          </div>
        </el-aside>
        <el-container>
          <!--主题设计-->
          <el-main style="height: 79vh;overflow: auto">
            <el-tabs v-model="activeName" @tab-click="handleClick">
              <el-tab-pane label="问题清单" name="ProblemSolving">
                <div>
                  <el-table
                      :data="problemData"
                      border
                      style="width: 100%"
                      :span-method="objectSpanMethod">
                    <el-table-column
                        prop="drawing"
                        label="零部件名称"
                        v-slot:default="scope"
                        width="130">
                      <span v-if="scope.row.drawing==='' || scope.row.drawing===undefined || scope.row.drawing===null">暂无</span>
                      <span v-else-if="scope.row.drawing.split('/').length<3">{{scope.row.drawing}}</span>
                      <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='chinese'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[1]}}</span>
                      <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='english'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[2]}}</span>
                      <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='russian'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[3]}}</span>
                    </el-table-column>
                    <el-table-column
                        prop="problemName"
                        label="问题名称"
                        width="200"
                        v-slot:default="scope">
                      <span>{{scope.row.problemName}}</span>
                      <el-link style="margin-left: 15px" @click="associationShow(scope)"><i class="el-icon-document"></i></el-link>
                    </el-table-column>
                    <el-table-column
                        prop="describeUse"
                        label="问题描述"
                        v-slot:default="scope">
                      <span v-html="scope.row.describeUse"></span>
                    </el-table-column>
                    <el-table-column
                        prop="finish"
                        label="结题状态"
                        width="80">
                    </el-table-column>
                    <el-table-column
                        prop="liability"
                        label="负责人"
                        width="80">
                    </el-table-column>
                    <el-table-column
                        prop="type1"
                        label="类型"
                        width="50">
                    </el-table-column>
                    <el-table-column
                        prop="isExam"
                        label="考核"
                        width="50">
                    </el-table-column>
                    <el-table-column
                        prop=""
                        label="编辑"
                        v-slot:default="scope"
                        width="50">
                      <div>
                        <el-link @click="problemShow(scope)">查看</el-link>
                      </div>
                      <div>
                        <el-link v-if="usePower===1" @click="problemEditShow(scope,100)">修改</el-link>
                      </div>
                      <div>
                        <el-link v-if="usePower===1" @click="problemEditShow(scope,101)">删除</el-link>
                      </div>
                    </el-table-column>
                  </el-table>
                </div>
                <div>
                </div>
              </el-tab-pane>
              <el-tab-pane label="售后索赔单" name="warrantyClaims" v-if="buttonDoe===5">
                <div style="display: flex; align-items: center; margin-bottom: 8px">
                  <el-radio-group v-model="iptvType">
                    <el-radio label="IPTV3">IPTV3</el-radio>
                    <el-radio label="IPTV12">IPTV12</el-radio>
                    <el-radio label="IPTV24">IPTV24</el-radio>
                    <el-radio label="IPTV36">IPTV36</el-radio>
                    <el-radio label="All Problem">All Problem</el-radio>
                  </el-radio-group>
                  <span style="margin-left: 5px">|</span>
                  <el-date-picker
                      type="months"
                      v-model="selectMoon"
                      placeholder="选择一个或多个月"
                      format="yyyyMM"
                      value-format="yyyyMM"
                      size="small"
                      style="margin-left: 10px">
                  </el-date-picker>
                  <span style="margin-left: 5px">|</span>
                  <el-button size="small" style="margin-left: 10px" @click="selectIPTV">筛选</el-button>
                  <span style="margin-left: 5px">|</span>
                  <el-input placeholder="请输入发动机号" style="margin-left: 5px;width: 120px" size="small" v-model="engineNoSelect"></el-input>
                  <span style="margin-left: 5px">|</span>
                  <el-select v-model="drawingSelect" clearable filterable placeholder="请选择零部件" style="width:150px;margin-left: 10px; " size="small">
                    <el-option
                        v-for="item in productModelListOption"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                    </el-option>
                  </el-select>

                </div>
                <div>
                  <el-table
                      :data="warrantyClaimData"
                      border
                      style="width: 100%;"
                      height="63vh">
                    <el-table-column type="expand" fixed
                                     :key="'expand-column'">
                      <template v-slot:default="scope">
                        <div style="margin-left: 20px" :key="scope.row.id">
                          <el-link @click="generalEditText(1,scope)"><strong>调查信息:</strong></el-link>
                          <p v-html="scope.row.investigate"></p>
                          <el-divider></el-divider>
                          <el-link style="margin-bottom: 10px" @click="isBackShow(scope)"><strong>调返信息:</strong></el-link>
                          <el-descriptions class="margin-top"  :column="8" :size="'small'" border>
                            <el-descriptions-item label="是否调返">
                              <el-link>{{scope.row.isBack}}</el-link>
                            </el-descriptions-item>
                            <el-descriptions-item label="调返提出人">
                              {{scope.row.backName}}
                            </el-descriptions-item>
                            <el-descriptions-item label="提出时间">
                              {{scope.row.backProposeDate}}
                            </el-descriptions-item>
                            <el-descriptions-item label="返回时间">
                              {{scope.row.backRUSEngineDate}}
                            </el-descriptions-item>
                            <el-descriptions-item label="返回交接人">
                              {{scope.row.backRUSEngineName}}
                            </el-descriptions-item>
                            <el-descriptions-item label="是否返国内">
                              {{scope.row.isBackChina}}
                            </el-descriptions-item>
                            <el-descriptions-item label="回国时间">
                              {{scope.row.backCNDate}}
                            </el-descriptions-item>
                            <el-descriptions-item label="国内接收人">
                              {{scope.row.backCNName}}
                            </el-descriptions-item>
                          </el-descriptions>
                        </div>
                      </template>
                    </el-table-column>
                    <el-table-column
                        label="序号"
                        v-slot:default="scope"
                        fixed
                        width="50">
                      <span v-if="scope.row.investigate==='' || scope.row.investigate===null || scope.row.investigate===undefined" style="color: red">{{scope.$index+1}}</span>
                      <span v-else style="color: #0269fa"><span>{{scope.$index+1}}</span></span>
                    </el-table-column>
                    <el-table-column
                        prop="engineNo"
                        label="发动机号"
                        width="110"
                        sortable>
                    </el-table-column>
                    <el-table-column
                        prop="mileage"
                        label="里程"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="productionDate"
                        label="生产日期"
                        width="95">
                    </el-table-column>
                    <el-table-column
                        prop="warrantyStartingDate"
                        label="销售日期"
                        width="95">
                    </el-table-column>
                    <el-table-column
                        prop="repairCompletedDate"
                        label="维修日期"
                        width="95">
                    </el-table-column>
                    <el-table-column
                        prop="partName"
                        label="零部件名称"
                        width="100"
                        v-slot:default="scope"
                        :show-overflow-tooltip="true">
                      <span v-if="scope.row.partName.split('/').length===0">
                        {{scope.row.partName}}
                      </span>
                      <span v-else>
                        {{scope.row.partName.split('/')[0]}}
                      </span>

                    </el-table-column>
                    <el-table-column
                        prop="faultDescriptionChinese"
                        label="故障描述"
                        :show-overflow-tooltip="true"
                        width="200">
                      <template v-slot:default="scope">
                        {{ scope.row.faultDescriptionChinese}}
                      </template>
                    </el-table-column>
                    <el-table-column
                        prop="disposalResultChinese"
                        label="处理结果"
                        :show-overflow-tooltip="true"
                        width="200"
                        v-slot:default="scope">
                      {{scope.row.disposalResultChinese}}
                    </el-table-column>
                    <el-table-column
                        prop="problemType"
                        label="问题归集"
                        width="110"
                        v-slot:default="scope"
                        sortable>
                      <span>{{scope.row.problemType}}</span>
                      <el-link  type="primary" style="margin-left: 8px" @click="problemWarrantyShow(scope)"><i class="el-icon-chat-line-round"></i></el-link>
                    </el-table-column>
                    <el-table-column
                        prop="isExam"
                        label="考核"
                        width="80"
                        sortable>
                    </el-table-column>
                    <el-table-column
                        prop="iPTV3"
                        label="IPTV3"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="iPTV12"
                        label="IPTV12"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="iPTV24"
                        label="IPTV24"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="iPTV36"
                        label="IPTV36"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        label="操作"
                        width="120"
                        v-slot:default="scope"
                        v-if="usePower===1">
                      <template>
                        <el-link type="primary" @click="warrantyClaimAddShow(1,scope)">
                          <i class="el-icon-circle-plus-outline"></i>
                        </el-link>
                        <el-link type="primary" style="margin-left: 8px" @click="warrantyClaimAddShow(2,scope)">
                          <i class="el-icon-connection"></i>
                        </el-link>
                        <el-link type="primary" style="margin-left: 8px" @click="warrantyClaimAddShow(3,scope)">
                          <i class="el-icon-delete"></i>
                        </el-link>
                        <el-link type="primary" style="margin-left: 8px" @click="warrantyClaimAddShow(4,scope)">
                          <i class="el-icon-edit"></i>
                        </el-link>
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="工程内不良品" name="noGoodPart" v-if="buttonDoe===6">
                <div>
                  <el-table
                      :data="noGoodPartAssData"
                      border
                      style="width: 100%"
                      height="68vh">
                    <el-table-column
                        label="序号"
                        width="50"
                        v-slot:default="scope">
                      {{scope.$index+1}}
                    </el-table-column>
                    <el-table-column
                        label="编号"
                        width="80"
                        prop="bh"
                        sortable>
                    </el-table-column>
                    <el-table-column
                        prop="cpxh"
                        label="零部件图号"
                        width="130">
                    </el-table-column>
                    <el-table-column
                        prop="lbjmc"
                        label="零部件名称"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="fdjxh"
                        label="机型"
                        width="80">
                    </el-table-column>
                    <el-table-column
                        prop="fscs"
                        label="发生场所"
                        width="100">
                    </el-table-column>
                    <el-table-column
                        prop="sccj"
                        label="生产厂家"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="qxms"
                        label="缺陷描述"
                        :show-overflow-tooltip="true"
                        align="center">
                    </el-table-column>
                    <el-table-column
                        prop="create_time"
                        label="开票日期"
                        width="120"
                        sortable>
                    </el-table-column>
                    <el-table-column
                        prop="sl"
                        label="数量"
                        width="80"
                        align="center">
                    </el-table-column>
                    <el-table-column
                        prop="bflx"
                        label="报废类型"
                        width="100"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="problemType"
                        label="问题归集"
                        width="90"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        label="操作"
                        width="100"
                        v-slot:default="scope">
                      <el-link  v-if="usePower===1" type="primary" @click="inCompanyAddShow(1,scope)"><i class="el-icon-circle-plus-outline"></i></el-link>
                      <el-link  v-if="usePower===1" type="primary" style="margin-left: 8px" @click="inCompanyAddShow(2,scope)"><i class="el-icon-connection"></i></el-link>
                      <el-link  type="primary" style="margin-left: 8px" @click="problemInCompanyShow(scope)"><i class="el-icon-chat-line-round"></i></el-link>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="过程问题清单" name="zeroKilometers">
                <div style="text-align: right;margin-bottom: 8px">
                  <el-button size="small" @click="zeroKilometersEditShow(1,null)">添加</el-button>
                </div>
                <div>
                  <el-table
                      :data="zeroKilometersData"
                      border
                      style="width: 100%"
                      height="63vh">
                    <el-table-column type="expand" fixed
                                     :key="'expand-column'">
                      <template v-slot:default="scope">
                        <div style="margin-left: 20px" :key="scope.row.id">
                          <el-link @click="generalEditText(2,scope)"><strong>调查信息:</strong></el-link>
                          <p v-html="scope.row.investigate"></p>
                          <el-divider></el-divider>
                        </div>
                      </template>
                    </el-table-column>
                    <el-table-column
                        prop="occurDate"
                        label="发生日期"
                        width="130">
                    </el-table-column>
                    <el-table-column
                        prop="engineType"
                        label="机型"
                        width="80"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="engineNo"
                        label="发动机号"
                        width="100">
                    </el-table-column>
                    <el-table-column
                        prop="describeUse"
                        label="问题描述"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="partName"
                        label="零部件名称"
                        width="150"
                        align="center"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="quantity"
                        label="数量"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="detailed"
                        label="详细信息"
                        :show-overflow-tooltip="true">
                    </el-table-column>
                    <el-table-column
                        prop="problemType"
                        label="问题归集"
                        width="120"
                        v-slot:default="scope">
                      {{scope.row.problemType}}
                      <el-link  type="primary" style="margin-left: 8px" @click="problemZeroKilometerShow(scope)" ><i class="el-icon-chat-line-round"></i></el-link>
                    </el-table-column>
                    <el-table-column
                        label="编辑"
                        width="120"
                        v-slot:default="scope">
                      <el-link  v-if="usePower===1" type="primary" @click="zeroKilometersEditShow(2,scope)"><i class="el-icon-circle-plus-outline"></i></el-link>
                      <el-link  v-if="usePower===1" type="primary" style="margin-left: 8px" @click="zeroKilometersEditShow(3,scope)"><i class="el-icon-connection"></i></el-link>
                      <el-link  v-if="usePower===1" type="primary" style="margin-left: 8px" @click="zeroKilometersEditShow(4,scope)"><i class="el-icon-edit"></i></el-link>
                      <el-link  v-if="usePower===1" type="primary" style="margin-left: 8px" @click="zeroKilometersEditShow(5,scope)"><i class="el-icon-delete"></i></el-link>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="IPTV报告" name="IPTVReport" v-if="buttonDoe===5">
                <div>
                  <div>
                    <span style="font-size: 18px"><strong>IPTV报告</strong></span>
                  </div>
                  <div style="text-align: left;margin-top: 10px">
                    <el-select v-model="yearSelect" placeholder="请选择" style="width: 90px" size="small">
                      <el-option
                          v-for="item in yearOptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value">
                      </el-option>
                    </el-select>
                    年截止
                    <el-select v-model="moonSelect" placeholder="请选择" style="width: 90px" size="small">
                      <el-option
                          v-for="item in moonOptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value">
                      </el-option>
                    </el-select>
                    指标达成结果及趋势分析：
                  </div>
                  <div style="text-align: left;margin-top: 10px">
                    顾客维度指标：
                    <el-button v-if="usePower===1" size="small" @click="editIPTVReportShow(1,null)">编辑报告</el-button>
                  </div>
                  <div style="margin-top: 10px">
                    <strong style="color: red;">零公里</strong>
                  </div>
                  <div style="margin-top: 10px; display: flex; align-items: stretch;">
                    <!-- 第一个 div，包含表格 -->
                    <div style="flex-grow: 1; border: 1px solid blue;height: 250px">
                      <el-table
                          :data="zeroKilometer"
                          border
                          style="width: 100%;"
                          header-row-class-name="custom-header"
                      >
                        <el-table-column
                            prop="engineType"
                            label="机型"
                            width="50">
                        </el-table-column>
                        <el-table-column
                            prop="yearTargetVal"
                            label="年度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonTargetVal"
                            label="月度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieve"
                            label="月度达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="addUpTargetVal"
                            label="累计目标 PPM"
                            width="60"
                            align="center">
                        </el-table-column>
                        <el-table-column
                            prop="addUpAchieve"
                            label="累计达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieveRatio"
                            label="月达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.moonAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="yearAchieveRatio"
                            label="年达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.yearAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="isAchieve"
                            label="是否达成"
                            width="50"></el-table-column>
                        <el-table-column prop="achieveTrend" label="达成趋势"></el-table-column>
                      </el-table>
                    </div>

                    <!-- 第二个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图-->
                      <div  ref="moonAchieveChartEB" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图-->
                      <div  ref="moonAchieveChartEN" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                    <!-- 第三个个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图-->
                      <div  ref="yearAchieveChartEB" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图-->
                      <div  ref="yearAchieveChartEN" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                  </div>
                  <div v-if="isDataZeroKilometer">
                    <div
                        v-for="item in zeroKilometer"
                        :key="item.id"
                        style="margin-top: 10px; text-align: left">
                      <span>总结：</span>
                      <span>{{ item.information }}</span>
                      <span style="margin-left: 10px">问题汇报:</span>
                      <div style="margin-top: 10px;border: 1px solid blue;">
                        <el-table
                            :data="item.problemData"
                            border
                            style="width: 100%"
                            :span-method="objectSpanMethod">
                          <el-table-column
                              prop="drawing"
                              label="零部件名称"
                              v-slot:default="scope"
                              width="130">
                            <span v-if="scope.row.drawing==='' || scope.row.drawing===undefined || scope.row.drawing===null">暂无</span>
                            <span v-else-if="scope.row.drawing.split('/').length<3">{{scope.row.drawing}}</span>
                            <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='chinese'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[1]}}</span>
                            <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='english'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[2]}}</span>
                            <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='russian'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[3]}}</span>
                          </el-table-column>
                          <el-table-column
                              prop="problemName"
                              label="问题名称"
                              width="200"
                              v-slot:default="scope">
                            <span>{{scope.row.problemName}}</span>
                          </el-table-column>
                          <el-table-column
                              prop="describeUse"
                              label="问题描述"
                              v-slot:default="scope">
                            <span v-html="scope.row.describeUse"></span>
                          </el-table-column>
                          <el-table-column
                              prop="finish"
                              label="结题状态"
                              width="80">
                          </el-table-column>
                          <el-table-column
                              prop="liability"
                              label="负责人"
                              width="180">
                          </el-table-column>
                          <el-table-column
                              prop=""
                              label="汇报"
                              v-slot:default="scope"
                              width="50">
                            <div>
                              <el-link @click="problemShow(scope)">查看</el-link>
                            </div>
                          </el-table-column>
                        </el-table>
                      </div>
                    </div>
                  </div>
                  <div style="margin-top: 10px">
                    <strong style="color: red;">IPTV3</strong>
                  </div>
                  <div style="margin-top: 10px; display: flex; align-items: stretch;">
                    <!-- 第一个 div，包含表格 -->
                    <div style="flex-grow: 1; height: 250px; border: 1px solid blue;">
                      <el-table
                          :data="iptv3ReportData"
                          border
                          style="width: 100%;"
                          header-row-class-name="custom-header">
                        <el-table-column
                            prop="engineType"
                            label="机型"
                            width="50">
                        </el-table-column>
                        <el-table-column
                            prop="yearTargetVal"
                            label="年度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonTargetVal"
                            label="月度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieve"
                            label="月度达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="addUpTargetVal"
                            label="累计目标 PPM"
                            width="60"
                            align="center">
                        </el-table-column>
                        <el-table-column
                            prop="addUpAchieve"
                            label="累计达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieveRatio"
                            label="月达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.moonAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="yearAchieveRatio"
                            label="年达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.yearAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="isAchieve"
                            label="是否达成"
                            width="50"></el-table-column>
                        <el-table-column prop="achieveTrend" label="达成趋势"></el-table-column>
                      </el-table>
                    </div>

                    <!-- 第二个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图-->
                      <div  ref="moonAchieveChartEBIptv3" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图-->
                      <div  ref="moonAchieveChartENIptv3" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                    <!-- 第三个个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图（累计）-->
                      <div  ref="yearAchieveChartEBIptv3" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图（累计）-->
                      <div  ref="yearAchieveChartENIptv3" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                  </div>
                  <div
                      v-for="item in iptv3ReportData" :key="item.id"
                      style="margin-top: 10px; text-align: left">
                    <span>总结：</span>
                    <span>{{ item.information }}</span>
                    <span style="margin-left: 10px">问题汇报:</span>
                    <div style="margin-top: 10px;border: 1px solid blue;">
                      <el-table
                          :data="item.problemData"
                          border
                          style="width: 100%"
                          :span-method="objectSpanMethod">
                        <el-table-column
                            prop="drawing"
                            label="零部件名称"
                            v-slot:default="scope"
                            width="130">
                          <span v-if="scope.row.drawing==='' || scope.row.drawing===undefined || scope.row.drawing===null">暂无</span>
                          <span v-else-if="scope.row.drawing.split('/').length<3">{{scope.row.drawing}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='chinese'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[1]}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='english'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[2]}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='russian'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[3]}}</span>
                        </el-table-column>
                        <el-table-column
                            prop="problemName"
                            label="问题名称"
                            width="200"
                            v-slot:default="scope">
                          <span>{{scope.row.problemName}}</span>
                        </el-table-column>
                        <el-table-column
                            prop="describeUse"
                            label="问题描述"
                            v-slot:default="scope">
                          <span v-html="scope.row.describeUse"></span>
                        </el-table-column>
                        <el-table-column
                            prop="finish"
                            label="结题状态"
                            width="80">
                        </el-table-column>
                        <el-table-column
                            prop="liability"
                            label="负责人"
                            width="180">
                        </el-table-column>
                        <el-table-column
                            prop=""
                            label="汇报"
                            v-slot:default="scope"
                            width="50">
                          <div>
                            <el-link @click="problemShow(scope)">查看</el-link>
                          </div>
                        </el-table-column>
                      </el-table>
                    </div>
                  </div>
                  <div style="margin-top: 10px">
                    <strong style="color: red;">IPTV12</strong>
                  </div>
                  <div style="margin-top: 10px; display: flex; align-items: stretch;">
                    <!-- 第一个 div，包含表格 -->
                    <div style="flex-grow: 1; border: 1px solid blue;height: 250px">
                      <el-table
                          :data="iptv12ReportData"
                          border
                          style="width: 100%;"
                          header-row-class-name="custom-header"
                      >
                        <el-table-column
                            prop="engineType"
                            label="机型"
                            width="50">
                        </el-table-column>
                        <el-table-column
                            prop="yearTargetVal"
                            label="年度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonTargetVal"
                            label="月度目标 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieve"
                            label="月度达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="addUpTargetVal"
                            label="累计目标 PPM"
                            width="60"
                            align="center">
                        </el-table-column>
                        <el-table-column
                            prop="addUpAchieve"
                            label="累计达成 PPM"
                            width="60">
                        </el-table-column>
                        <el-table-column
                            prop="moonAchieveRatio"
                            label="月达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.moonAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="yearAchieveRatio"
                            label="年达比例%"
                            width="80"
                            v-slot:default="scope">
                          {{(scope.row.yearAchieveRatio*100).toFixed(2)}}
                        </el-table-column>
                        <el-table-column
                            prop="isAchieve"
                            label="是否达成"
                            width="50"></el-table-column>
                        <el-table-column prop="achieveTrend" label="达成趋势"></el-table-column>
                      </el-table>
                    </div>
                    <!-- 第二个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图-->
                      <div  ref="moonAchieveChartEBIptv12" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图-->
                      <div  ref="moonAchieveChartENIptv12" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                    <!-- 第三个个 div，固定宽度为 300px -->
                    <div style="width: 500px; margin-left: 10px; border: 1px solid blue;">
                      <!--EB的达成趋势图（累计）-->
                      <div  ref="yearAchieveChartEBIptv12" style="width: 300px;height: 120px;margin-top: 5px"></div>
                      <!--EN的达成趋势图（累计）-->
                      <div  ref="yearAchieveChartENIptv12" style="width: 300px;height: 120px;margin-top:10px"></div>
                    </div>
                  </div>
                  <div
                      v-for="item in iptv12ReportData" :key="item.id"
                      style="margin-top: 10px; text-align: left">
                    <span>总结：</span>
                    <span>{{ item.information }}</span>
                    <span style="margin-left: 10px">问题汇报:</span>
                    <div style="margin-top: 10px;border: 1px solid blue;">
                      <el-table
                          :data="item.problemData"
                          border
                          style="width: 100%"
                          :span-method="objectSpanMethod">
                        <el-table-column
                            prop="drawing"
                            label="零部件名称"
                            v-slot:default="scope"
                            width="130">
                          <span v-if="scope.row.drawing==='' || scope.row.drawing===undefined || scope.row.drawing===null">暂无</span>
                          <span v-else-if="scope.row.drawing.split('/').length<3">{{scope.row.drawing}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='chinese'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[1]}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='english'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[2]}}</span>
                          <span v-else-if="scope.row.drawing.split('/').length>=3 && languageS==='russian'">{{scope.row.drawing.split('/')[0]}}<br>{{scope.row.drawing.split('/')[3]}}</span>
                        </el-table-column>
                        <el-table-column
                            prop="problemName"
                            label="问题名称"
                            width="200"
                            v-slot:default="scope">
                          <span>{{scope.row.problemName}}</span>
                        </el-table-column>
                        <el-table-column
                            prop="describeUse"
                            label="问题描述"
                            v-slot:default="scope">
                          <span v-html="scope.row.describeUse"></span>
                        </el-table-column>
                        <el-table-column
                            prop="finish"
                            label="结题状态"
                            width="80">
                        </el-table-column>
                        <el-table-column
                            prop="liability"
                            label="负责人"
                            width="180">
                        </el-table-column>
                        <el-table-column
                            prop=""
                            label="汇报"
                            v-slot:default="scope"
                            width="50">
                          <div>
                            <el-link @click="problemShow(scope)">查看</el-link>
                          </div>
                        </el-table-column>
                      </el-table>
                    </div>
                  </div>
                </div>

              </el-tab-pane>
              <el-tab-pane label="索赔单多维度" name="analysisReport" v-if="buttonDoe===5">
                <!--多月故障数量趋势图-->
                <div style="text-align: left">
                  按照发生日期统计：月度故障数量趋势图：
                  <el-date-picker
                      v-model="valueSelectMoonDimension"
                      type="monthrange"
                      range-separator="至"
                      start-placeholder="开始月份"
                      end-placeholder="结束月份"
                      size="small"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                  </el-date-picker>
                  <el-link style="margin-left: 20px"><i class="el-icon-refresh"></i></el-link>
                </div>
                <div style="text-align: left; height: 250px; width: 82vw; border: 1px solid blue;margin: 8px">
                  <div  ref="moonFaultsNumber" style="width: 82vw;height: 250px;margin-top: 5px"></div>
                </div>
                <!--按照发生日期，某一月或一段时间（按照月来），某一个零部件零部件出现的故障数量-->
                <div style="text-align: left">
                  按照发生日期统计：
                  <el-date-picker
                      v-model="valueSelectMoonDimension"
                      type="monthrange"
                      range-separator="至"
                      start-placeholder="开始月份"
                      end-placeholder="结束月份"
                      size="small"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                  </el-date-picker>
                  月
                  <el-select v-model="partName" clearable filterable placeholder="请选择" style="width:300px ">
                    <el-option
                        v-for="item in productModelListOption"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                    </el-option>
                  </el-select>
                  零部件故障趋势：
                  <el-link style="margin-left: 20px"><i class="el-icon-refresh"></i></el-link>
                </div>
                <div style="text-align: left; height: 250px; width: 82vw; border: 1px solid blue;margin: 8px">
                  <div  ref="partMoonNumChart" style="width: 82vw;height: 250px;margin-top: 5px"></div>
                </div>
                <!--按照发生时间统计，某一月度故障数量趋势图-->
                <div style="text-align: left">
                  按照发生日期统计：
                  <el-date-picker
                      v-model="valueMoon"
                      type="month"
                      placeholder="选择月"
                      size="small"
                      format="yyyy-MM"
                      value-format="yyyy-MM-dd"
                      style="width: 150px;">
                  </el-date-picker>
                  月故障零部件趋势图：
                  <el-link style="margin-left: 20px"><i class="el-icon-refresh"></i></el-link>
                </div>
                <div style="text-align: left; height: 250px; width: 82vw; border: 1px solid blue;margin: 8px">
                  <div  ref="moonParts" style="width: 82vw;height: 250px;margin-top: 5px"></div>
                </div>
              </el-tab-pane>
              <el-tab-pane label="模型说明" name="third">模型说明</el-tab-pane>
            </el-tabs>
          </el-main>
          <el-footer>
            <el-button plain size="small" @click="chooseLanguage('chinese')">中  文</el-button>
            <el-button plain size="small" @click="chooseLanguage('russian')">Русский язык</el-button>
            <el-button plain size="small" @click="chooseLanguage('english')">English</el-button>
          </el-footer>
        </el-container>
      </el-container>
    </el-container>

    <!--弹窗放置区-->
    <!--通过问题板块：添加/修改问题的，固定多个填写内容地方使用,用在了导航区的零公里、市场问题-->
    <el-dialog
        :title="titleUse"
        :visible.sync="dialogVisibleAddP"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="problemDataForm" label-width="120px" :inline="true">
        <div>
          <el-form-item label="环节名称：" prop="workshop">
            <el-select v-model="problemDataForm.workshop" clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in customerWorkshop"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="线体名称：">
            <el-select v-model="problemDataForm.lineName" :disabled="disabledLineName"  clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionLineName"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工 序 号：" prop="op">
            <el-select v-model="problemDataForm.op" :disabled="disabledOp" clearable placeholder="请选择" style="width:450px">
              <el-option
                  v-for="item in op"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="零部件/供方：">
            <el-select v-model="problemDataForm.drawing" clearable filterable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in productModelListOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="problemDataForm.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="销售时间:" >
          <el-date-picker
              v-model="problemDataForm.saleDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px">
          </el-date-picker>
        </el-form-item>
        <div>
          <el-form-item label="责任人：" prop="liability">
            <el-input placeholder="请输入责任人姓名" style="width: 450px" v-model="problemDataForm.liability"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工   号：" prop="liabilityNub">
            <el-input placeholder="请输入责任人工号" style="width: 450px" v-model="problemDataForm.liabilityNub"></el-input>
          </el-form-item>
        </div>
        <el-form-item label="发生数量：" prop="quantity">
          <div class="block">
            <el-input-number style="width: 160px" v-model="problemDataForm.quantity" :min="1" :max="10000"></el-input-number>
          </div>
        </el-form-item>
        <el-form-item label="行驶里程">
          <el-input-number v-model="problemDataForm.mileage" style="width: 160px"></el-input-number>
        </el-form-item>
        <div>
          <el-form-item label="问题名称：" prop="problemName">
            <el-input style="width: 450px" placeholder="请输入问题名称"
                      v-model="problemDataForm.problemName"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="问题描述：" prop="describeUse" v-if="problemAddShowDoe!==100">
            <el-input placeholder="请输入问题描述" v-model="problemDataForm.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <el-form-item label="问题类型：">
          <el-select v-model="problemDataForm.type1"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionType1"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="problemDataForm.isExam"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="dialogVisibleAddP=false">取消</el-button>
            <el-button type="primary" @click="problemDataAdd">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过索赔单板块：添加问题的弹窗-->
    <el-dialog
        :title="titleUse"
        :visible.sync="warrantyClaimAddDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="problemWarrantyFrom" label-width="120px" :inline="true">
        <div>
          <el-form-item label="环节名称：" prop="workshop">
            <el-select v-model="problemWarrantyFrom.workshop" clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in customerWorkshop"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="线体名称：">
            <el-select v-model="problemWarrantyFrom.lineName" :disabled="disabledLineName"  clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionLineName"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工 序 号：" prop="op">
            <el-select v-model="problemWarrantyFrom.op" :disabled="disabledOp" clearable placeholder="请选择" style="width:450px">
              <el-option
                  v-for="item in op"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="零部件/供方：">
            <el-select v-model="problemWarrantyFrom.drawing" clearable filterable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in productModelListOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="problemWarrantyFrom.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="销售时间:" >
          <el-date-picker
              v-model="problemWarrantyFrom.saleDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px">
          </el-date-picker>
        </el-form-item>
        <div>
          <el-form-item label="责任人：" prop="liability">
            <el-input placeholder="请输入责任人姓名" style="width: 450px" v-model="problemWarrantyFrom.liability"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工   号：" prop="liabilityNub">
            <el-input placeholder="请输入责任人工号" style="width: 450px" v-model="problemWarrantyFrom.liabilityNub"></el-input>
          </el-form-item>
        </div>
        <el-form-item label="发生数量：" prop="quantity">
          <div class="block">
            <el-input-number style="width: 160px" v-model="problemWarrantyFrom.quantity" :min="1" :max="10000"></el-input-number>
          </div>
        </el-form-item>
        <el-form-item label="行驶里程">
          <el-input-number v-model="problemWarrantyFrom.mileage" style="width: 160px"></el-input-number>
        </el-form-item>
        <div>
          <el-form-item label="问题名称：" prop="problemName">
            <el-input style="width: 450px" placeholder="请输入问题名称"
                      v-model="problemWarrantyFrom.problemName"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="问题描述：" prop="describeUse" v-if="problemAddShowDoe!==100">
            <el-input placeholder="请输入问题描述" v-model="problemWarrantyFrom.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <el-form-item label="问题类型：">
          <el-select v-model="problemWarrantyFrom.type1"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionType1"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="problemWarrantyFrom.isExam"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="warrantyClaimAddDialog=false">取消</el-button>
            <el-button type="primary" @click="problemAddByWarrantyClaim">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过索赔信息板块：修改一个索赔单-->
    <el-dialog
        :title="titleUse"
        :visible.sync="warrantyClaimEditDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="warrantyClaimFrom" label-width="120px" :inline="true">
        <div>
          <el-form-item label="问题描述：" label-width="200" style="text-align: left">
            <el-input
                type="textarea"
                autosize
                placeholder="请输入内容"
                v-model="warrantyClaimFrom.faultDescriptionChinese" style="width: 590px">
            </el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="处理结果：" label-width="200" style="text-align: left">
            <el-input
                type="textarea"
                autosize
                placeholder="请输入内容"
                v-model="warrantyClaimFrom.disposalResultChinese" style="width: 590px">
            </el-input>
          </el-form-item>
        </div>
        <el-form-item label="零部件/供方：" label-width="100">
          <el-select v-model="warrantyClaimFrom.partName" clearable filterable placeholder="请选择" style="width:300px ">
            <el-option
                v-for="item in productModelListOption"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：" label-width="100">
          <el-select v-model="warrantyClaimFrom.isExam"  clearable placeholder="请选择" style="width: 80px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="warrantyClaimEditDialog=false">取消</el-button>
            <el-button type="primary" @click="warrantyClaimEdit">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过索赔信息板块：修改一个索赔单中的是否返回故障件的信息-->
    <el-dialog
        :title="titleUse"
        :visible.sync="warrantyClaimEditIsBackDialog"
        width="600px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="warrantyClaimFrom" label-width="140px" :inline="true">
        <el-form-item label="是否调返：" label-width="140" style="text-align: right">
          <el-select v-model="warrantyClaimFrom.isBack"  clearable placeholder="请选择" style="width: 150px">
            <el-option
                v-for="item in optionIsExamEnglish"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item style="text-align: right" label="调返提出人：" label-width="140">
          <el-input v-model="warrantyClaimFrom.backName" style="width: 150px"></el-input>
        </el-form-item>
        <el-form-item style="text-align: right" label="提出时间：" label-width="140">
          <el-date-picker
              v-model="warrantyClaimFrom.backProposeDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              style="width: 150px">
          </el-date-picker>
        </el-form-item>
        <el-form-item style="text-align: right" label="到俄时间：" label-width="140">
          <el-date-picker
              v-model="warrantyClaimFrom.backRUSEngineDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              style="width: 150px">
          </el-date-picker>
        </el-form-item>
        <el-form-item style="text-align: right" label="俄动力接收人：" label-width="140">
          <el-input v-model="warrantyClaimFrom.backRUSEngineName" placeholder="请输入姓名" style="width: 150px"></el-input>
        </el-form-item>
        <el-form-item style="text-align: right" label="是否返中国：" label-width="140">
          <el-select v-model="warrantyClaimFrom.isBackChina"  clearable placeholder="请选择" style="width: 150px">
            <el-option
                v-for="item in optionIsExamEnglish"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item style="text-align: right" label="到中国时间：" label-width="140">
          <el-date-picker
              v-model="warrantyClaimFrom.backCNDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              style="width: 150px">
          </el-date-picker>
        </el-form-item>
        <el-form-item style="text-align: right" label="中国接收人：" label-width="140">
          <el-input v-model="warrantyClaimFrom.backCNName" placeholder="请输入接收人" style="width: 150px"></el-input>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="warrantyClaimEditIsBackDialog=false">取消</el-button>
            <el-button type="primary" @click="warrantyClaimEditIsBack">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过不合格品单板块：添加问题的，固定多个填写内容地方使用，用在了工程内问题的不良品单上添加-->
    <el-dialog
        :title="titleUse"
        :visible.sync="inCompanyAddDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="problemWarrantyFrom" label-width="120px" :inline="true">
        <div>
          <el-form-item label="环节名称：" prop="workshop">
            <el-select v-model="problemWarrantyFrom.workshop" clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionWorkshopOnly"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="线体名称：">
            <el-select v-model="problemWarrantyFrom.lineName"  clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionLineName"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工 序 号：" prop="op">
            <el-select v-model="problemWarrantyFrom.op" clearable placeholder="请选择" style="width:450px">
              <el-option
                  v-for="item in op"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="零部件/供方：">
            <el-select v-model="problemWarrantyFrom.drawing" clearable filterable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in productModelListOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="problemWarrantyFrom.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="责任分类:" >
          <el-select v-model="problemWarrantyFrom.type2"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyLiabilityOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item label="责任人：" prop="liability">
            <el-input placeholder="请输入责任人姓名" style="width: 450px" v-model="problemWarrantyFrom.liability"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工   号：" prop="liabilityNub">
            <el-input placeholder="请输入责任人工号" style="width: 450px" v-model="problemWarrantyFrom.liabilityNub"></el-input>
          </el-form-item>
        </div>
        <el-form-item label="发生数量：" prop="quantity">
          <div class="block">
            <el-input-number style="width: 160px" v-model="problemWarrantyFrom.quantity" :min="1" :max="10000"></el-input-number>
          </div>
        </el-form-item>
        <el-form-item label="零部件号：">
          <el-input v-model="problemWarrantyFrom.partName" style="width: 160px"></el-input>
        </el-form-item>
        <div>
          <el-form-item label="问题名称：" prop="problemName">
            <el-input style="width: 450px" placeholder="请输入问题名称"
                      v-model="problemWarrantyFrom.problemName"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="问题描述：" prop="describeUse" v-if="problemAddShowDoe!==100">
            <el-input placeholder="请输入问题描述" v-model="problemWarrantyFrom.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <el-form-item label="问题类型：">
          <el-select v-model="problemWarrantyFrom.type1"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="problemWarrantyFrom.isExam"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="inCompanyAddDialog=false">取消</el-button>
            <el-button type="primary" @click="problemAddByInCompany">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过0公里板块板块：添加问题的，固定多个填写内容地方使用，用在了0公里问题的过程清单上添加-->
    <el-dialog
        :title="titleUse"
        :visible.sync="zeroKilometersAddDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="problemWarrantyFrom" label-width="120px" :inline="true">
        <div>
          <el-form-item label="环节名称：" prop="workshop">
            <el-select v-model="problemWarrantyFrom.workshop" clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionWorkshopOnly"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="线体名称：">
            <el-select v-model="problemWarrantyFrom.lineName"  clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionLineName"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工 序 号：" prop="op">
            <el-select v-model="problemWarrantyFrom.op" clearable placeholder="请选择" style="width:450px">
              <el-option
                  v-for="item in op"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="零部件/供方：">
            <el-select v-model="problemWarrantyFrom.drawing" clearable filterable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in productModelListOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="problemWarrantyFrom.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="责任分类:" >
          <el-select v-model="problemWarrantyFrom.type2"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyLiabilityOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item label="责任人：" prop="liability">
            <el-input placeholder="请输入责任人姓名" style="width: 450px" v-model="problemWarrantyFrom.liability"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工   号：" prop="liabilityNub">
            <el-input placeholder="请输入责任人工号" style="width: 450px" v-model="problemWarrantyFrom.liabilityNub"></el-input>
          </el-form-item>
        </div>
        <el-form-item label="发生数量：" prop="quantity">
          <div class="block">
            <el-input-number style="width: 450px" v-model="problemWarrantyFrom.quantity" :min="1" :max="10000"></el-input-number>
          </div>
        </el-form-item>
        <div>
          <el-form-item label="问题名称：" prop="problemName">
            <el-input style="width: 450px" placeholder="请输入问题名称"
                      v-model="problemWarrantyFrom.problemName"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="问题描述：" prop="describeUse" v-if="problemAddShowDoe!==100">
            <el-input placeholder="请输入问题描述" v-model="problemWarrantyFrom.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <el-form-item label="问题类型：">
          <el-select v-model="problemWarrantyFrom.type1"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="problemWarrantyFrom.isExam"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="zeroKilometersAddDialog=false">取消</el-button>
            <el-button type="primary" @click="problemAddByzeroKilometers">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--通过主导航添加工程内问题-->
    <el-dialog
        :title="titleUse"
        :visible.sync="inCompanyMainAddDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="problemWarrantyFrom" label-width="120px" :inline="true">
        <div>
          <el-form-item label="环节名称：" prop="workshop">
            <el-select v-model="problemWarrantyFrom.workshop" clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionWorkshopOnly"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="线体名称：">
            <el-select v-model="problemWarrantyFrom.lineName"  clearable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in optionLineName"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工 序 号：" prop="op">
            <el-select v-model="problemWarrantyFrom.op" clearable placeholder="请选择" style="width:450px">
              <el-option
                  v-for="item in op"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="零部件/供方：">
            <el-select v-model="problemWarrantyFrom.drawing" clearable filterable placeholder="请选择" style="width:450px ">
              <el-option
                  v-for="item in productModelListOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="problemWarrantyFrom.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 160px"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="责任分类:" >
          <el-select v-model="problemWarrantyFrom.type2"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyLiabilityOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item label="责任人：" prop="liability">
            <el-input placeholder="请输入责任人姓名" style="width: 450px" v-model="problemWarrantyFrom.liability"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="工   号：" prop="liabilityNub">
            <el-input placeholder="请输入责任人工号" style="width: 450px" v-model="problemWarrantyFrom.liabilityNub"></el-input>
          </el-form-item>
        </div>
        <el-form-item label="发生数量：" prop="quantity">
          <div class="block">
            <el-input-number style="width: 160px" v-model="problemWarrantyFrom.quantity" :min="1" :max="10000"></el-input-number>
          </div>
        </el-form-item>
        <el-form-item label="零部件号：">
          <el-input v-model="problemWarrantyFrom.partName" style="width: 160px"></el-input>
        </el-form-item>
        <div>
          <el-form-item label="问题名称：" prop="problemName">
            <el-input style="width: 450px" placeholder="请输入问题名称"
                      v-model="problemWarrantyFrom.problemName"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="问题描述：" prop="describeUse" v-if="problemAddShowDoe!==100">
            <el-input placeholder="请输入问题描述" v-model="problemWarrantyFrom.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <el-form-item label="问题类型：">
          <el-select v-model="problemWarrantyFrom.type1"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in inCompanyOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="problemWarrantyFrom.isExam"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item>
            <el-button @click="inCompanyMainAddDialog=false">取消</el-button>
            <el-button type="primary" @click="problemAddByInCompanyMainAdd">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--添加零公里问题清单,不止是零公里问题，是所有的不能在表单中体现的，是过程清单-->
    <el-dialog
        :title="titleUse"
        :visible.sync="zeroKilometersEditDialog"
        width="650px"
        :before-close="handleClose">
      <el-form ref="tableDataForm" :model="zeroKilometersFrom" label-width="100px" :inline="true">
        <el-form-item label="发生时间:" >
          <el-date-picker
              v-model="zeroKilometersFrom.occurDate"
              type="date"
              placeholder="选择日期"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              style="width: 220px"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="机型：" label-width="80">
          <el-select v-model="zeroKilometersFrom.engineType"  clearable placeholder="请选择" style="width: 160px">
            <el-option
                v-for="item in engineTypeOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="发动机号：">
          <el-input placeholder="输入发动机号" style="width: 220px" v-model="zeroKilometersFrom.engineNo"></el-input>
        </el-form-item>
        <el-form-item label="数量：" label-width="80">
          <el-input-number placeholder="输入数量" style="width: 160px" v-model="zeroKilometersFrom.quantity"></el-input-number>
        </el-form-item>
        <el-form-item label="零部件/供方：">
          <el-select v-model="zeroKilometersFrom.partName" clearable filterable placeholder="请选择" style="width:220px ">
            <el-option
                v-for="item in productModelListOption"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="里程：" label-width="80">
          <el-input-number v-model="warrantyClaimFrom.mileage" style="width: 160px"></el-input-number>
        </el-form-item>
        <el-form-item label="责任分类:" >
          <el-select v-model="zeroKilometersFrom.responsibleParty"  clearable placeholder="请选择" style="width: 220px">
            <el-option
                v-for="item in inCompanyLiabilityOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否考核：">
          <el-select v-model="zeroKilometersFrom.isExam"  clearable placeholder="请选择" style="width: 120px">
            <el-option
                v-for="item in optionIsExam"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div>
          <el-form-item label="问题描述："  >
            <el-input placeholder="请输入问题描述" v-model="zeroKilometersFrom.describeUse" style="width:450px "></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item label="详细信息：">
            <el-input style="width: 450px" placeholder="请输入详细信息"
                      v-model="zeroKilometersFrom.detailed"></el-input>
          </el-form-item>
        </div>
        <div>
          <el-form-item>
            <el-button @click="zeroKilometersEditDialog=false">取消</el-button>
            <el-button type="primary" @click="zeroKilometersEdit">提交</el-button>
          </el-form-item>
        </div>
      </el-form>
    </el-dialog>
    <!--单击问题编辑区的弹窗，一个长的文本框-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="editProblemOneTextBigDialog"
        width="620"
        :before-close="handleClose">
      <div>
        <el-input v-model="editProblemText" style="width: 600px"></el-input>
      </div>
      <div style="margin-top: 15px">
        <el-button style="margin-right: 15px" @click="editProblemOneTextBigDialog=false">取消</el-button>
        <el-button @click="editProblemOk">提交</el-button>
      </div>
    </el-dialog>
    <!--通用：需要编辑一个富文本内容-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="generalFullTextDialog"
        width="60%"
        :before-close="handleClose">
      <div ref="editorContainer" style="text-align: left"></div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="generalFullTextDialog = false">取 消</el-button>
    <el-button type="primary" @click="generalEidtTextOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--单击问题编辑区的弹窗，需要富文本区域的地方使用-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="fullTextDialog"
        width="60%"
        :before-close="handleClose">
      <div ref="editorContainer" style="text-align: left"></div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="fullTextDialog = false">取 消</el-button>
    <el-button type="primary" @click="editProblemOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--单击问题编辑区的弹窗，需要一个输入数据的地方使用-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="nmbDialog"
        width="30%"
        :before-close="handleClose">
      <el-input-number label="请输入数量" v-model="inputNub"></el-input-number>
      <span slot="footer" class="dialog-footer">
    <el-button @click="nmbDialog = false">取 消</el-button>
    <el-button type="primary" @click="editProblemOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--单击问题编辑区的弹窗，需要一个输入文本日期的地方-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="dateDialog"
        width="30%"
        :before-close="handleClose">
      <el-date-picker
          v-model="valueDate"
          type="date"
          placeholder="选择日期"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd">
      </el-date-picker>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dateDialog = false">取 消</el-button>
    <el-button type="primary" @click="editProblemOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--单击问题编辑区的弹窗，需要一个输入负责人的地方-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="nameDialog"
        width="30%"
        :before-close="handleClose">
      <el-input placeholder="请输入内容" v-model="inputName" style="width: 100%"></el-input>
      <span slot="footer" class="dialog-footer">
    <el-button @click="nameDialog = false">取 消</el-button>
    <el-button type="primary" @click="editProblemOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--单击问题编辑区的弹窗，选择是，否结题的区域-->
    <el-dialog
        :title="editProblemItem"
        :visible.sync="yesDialog"
        width="30%"
        :before-close="handleClose">
      <el-switch
          v-model="valueYes"
          active-text="是"
          inactive-text="否">
      </el-switch>
      <span slot="footer" class="dialog-footer">
    <el-button @click="yesDialog = false">取 消</el-button>
    <el-button type="primary" @click="editProblemOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--点击弹窗，一个确认信息的按钮，用在了编辑问题信息的确认上-->
    <el-dialog
        title="提示"
        :visible.sync="dialogVisible"
        width="30%"
        :before-close="handleClose">
      <span>{{information}}</span>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="informationOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--点击弹窗，一个确认信息的按钮，用在了删除一项问题的确认上-->
    <el-dialog
        title="提示"
        :visible.sync="problemDeleteDialog"
        width="30%"
        :before-close="handleClose">
      <span>{{information}}</span>
      <span slot="footer" class="dialog-footer">
    <el-button @click="problemDeleteDialog = false">取 消</el-button>
    <el-button type="primary" @click="problemDeleteOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--点击弹窗，一个确认信息的按钮，用在了删除售后索赔单确认上-->
    <el-dialog
        title="提示"
        :visible.sync="warrantyDeleteDialog"
        width="30%"
        :before-close="handleClose">
      <span>{{information}}</span>
      <span slot="footer" class="dialog-footer">
    <el-button @click="warrantyDeleteDialog = false">取 消</el-button>
    <el-button type="primary" @click="warrantyDeleteOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--点击弹窗，一个确认信息的按钮，用在了删除售后索赔单确认上-->
    <el-dialog
        title="提示"
        :visible.sync="zeroKilometerDeleteDialog"
        width="30%"
        :before-close="handleClose">
      <span>{{information}}</span>
      <span slot="footer" class="dialog-footer">
    <el-button @click="zeroKilometerDeleteDialog = false">取 消</el-button>
    <el-button type="primary" @click="zeroKilometerDeleteDeleteOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--EXCEL批量的导入问题-->
    <el-dialog
        :title="titleUse"
        :visible.sync="warrantyClaimDialog"
        width="80%"
        :before-close="handleClose">
      <el-table
          :data="warrantyClaimData"
          border
          style="width: 100%">
        <el-table-column
            prop="engineNo"
            label="发动机编号"
            width="80">
        </el-table-column>
        <el-table-column
            prop="mileage"
            label="里程"
            width="80">
        </el-table-column>
        <el-table-column
            prop="productionDate"
            label="生产日期"
            width="80">
        </el-table-column>
        <el-table-column
            prop="repairCompletedDate"
            label="故障日期"
            width="80">
        </el-table-column>
        <el-table-column
            prop="mainPartCode"
            label="零部件编号"
            width="110">
        </el-table-column>
        <el-table-column
            prop="faultDescriptionChinese"
            label="故障描述"
            width="250">
        </el-table-column>
        <el-table-column
            prop="disposalResultChinese"
            label="处置结果">
        </el-table-column>
        <el-table-column
            prop=""
            label="操作"
            width="100">
          <template v-slot:default="scope">
            <el-link  @click="warrantyClaimData.splice(scope.$index,1)">删除</el-link>
          </template>
        </el-table-column>

      </el-table>
      <span slot="footer" class="dialog-footer">
    <el-button @click="warrantyClaimDialog = false">取 消</el-button>
    <el-button type="primary" @click="warrantyClaimAdd">确 定</el-button>
  </span>
    </el-dialog>
    <!--索赔单关联问题，选择已有问题管理的弹窗-->
    <el-dialog
        :title="titleUse"
        :visible.sync="selectProblemDialog"
        width="80%"
        :before-close="handleClose">
      <div>
        <el-checkbox-group v-model="selectProblemType">
          <el-checkbox label="市场问题"></el-checkbox>
          <el-checkbox label="零公里"></el-checkbox>
          <el-checkbox label="工程内问题"></el-checkbox>
        </el-checkbox-group>
      </div>
      <div style="text-align: left;margin-bottom: 10px;font-size: 16px">
        选择的问题名称是：<span>{{selectProblemFrom.problemName}}</span>
      </div>
      <div>
        <el-table
            :data="problemData"
            border
            highlight-current-row
            height="350"
            @row-click="problemCurrentChange"
            style="width: 100%">
          <el-table-column
              prop="problemName"
              label="问题名称"
              width="280px">
          </el-table-column>
          <el-table-column
              prop="describeUse"
              label="问题描述"
              v-slot:default="scope">
            <span v-html="scope.row.describeUse"></span>
          </el-table-column>
          <el-table-column
              prop="liability"
              label="负责人"
              width="130px">
          </el-table-column>
        </el-table>
      </div>
      <div style="margin-top: 10px">
        <el-button @click="selectProblemDialog = false">取 消</el-button>
        <el-button type="primary" @click="selectProblemOk">确 定</el-button>
      </div>
    </el-dialog>
    <!--通过问题，查看各个问题库中关联的问题-->
    <el-dialog
        :title="titleUse"
        :visible.sync="problemAssociationDialog"
        width="80%"
        :before-close="handleClose">
      <div>
        <el-radio v-model="association" label="市场问题">市场问题</el-radio>
        <el-radio v-model="association" label="零公里">零公里</el-radio>
        <el-radio v-model="association" label="工程内问题">工程内</el-radio>
      </div>
      <div v-if="association==='市场问题'" style="margin-top: 15px">
        <el-table
            :data="warrantyClaimDataShow"
            border
            style="width: 100%">
          <el-table-column type="expand"
                           v-slot:default="scope">
            <span>处理结果：</span><span>{{scope.row.disposalResultChinese}}</span>
          </el-table-column>
          <el-table-column
              prop="engineNo"
              label="发动机号"
              width="110">
          </el-table-column>
          <el-table-column
              prop="mileage"
              label="里程"
              width="70">
          </el-table-column>
          <el-table-column
              prop="productionDate"
              label="生产日期"
              width="95">
          </el-table-column>
          <el-table-column
              prop="warrantyStartingDate"
              label="销售日期"
              width="95">
          </el-table-column>
          <el-table-column
              prop="repairCompletedDate"
              label="维修日期"
              width="95">
          </el-table-column>
          <el-table-column
              prop="partName"
              label="零部件名称"
              width="100"
              v-slot:default="scope"
              :show-overflow-tooltip="true">
                      <span v-if="scope.row.partName.split('/').length===0">
                        {{scope.row.partName}}
                      </span>
            <span v-else>
                        {{scope.row.partName.split('/')[0]}}
                      </span>
          </el-table-column>
          <el-table-column
              prop="faultDescriptionChinese"
              label="故障描述"
              :show-overflow-tooltip="true"
              width="200">
          </el-table-column>
          <el-table-column
              prop="disposalResultChinese"
              label="处理结果"
              :show-overflow-tooltip="true"
              width="200">
          </el-table-column>
          <el-table-column
              prop="problemType"
              label="问题归集"
              width="100"
              v-slot:default="scope">
            <span>{{scope.row.problemType}}</span>
          </el-table-column>
          <el-table-column
              prop="isExam"
              label="考核"
              width="50">
          </el-table-column>
          <el-table-column
              prop="iPTV3"
              label="IPTV3"
              width="70">
          </el-table-column>
          <el-table-column
              prop="iPTV12"
              label="IPTV12"
              width="70">
          </el-table-column>
          <el-table-column
              prop="iPTV24"
              label="IPTV24"
              width="70">
          </el-table-column>
          <el-table-column
              prop="iPTV36"
              label="IPTV36"
              width="70">
          </el-table-column>
        </el-table>
      </div>
      <div v-else-if="association==='工程内问题'">
        <el-table
            :data="noGoodPartAssDataShow"
            border
            style="width: 100%"
            height="68vh">
          <el-table-column
              prop="cpxh"
              label="零部件图号"
              width="130">
          </el-table-column>
          <el-table-column
              prop="lbjmc"
              label="零部件名称"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="fdjxh"
              label="机型"
              width="80">
          </el-table-column>
          <el-table-column
              prop="fscs"
              label="发生场所"
              width="100">
          </el-table-column>
          <el-table-column
              prop="sccj"
              label="生产厂家"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="qxms"
              label="缺陷描述"
              :show-overflow-tooltip="true"
              align="center">
          </el-table-column>
          <el-table-column
              prop="create_time"
              label="开票日期"
              width="100"
              align="center"
              v-slot:default="scope">
            {{scope.row.create_time.slice(0,10)}}
          </el-table-column>
          <el-table-column
              prop="sl"
              label="数量"
              width="80"
              align="center">
          </el-table-column>
          <el-table-column
              prop="bflx"
              label="报废类型"
              width="100"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              label="操作"
              width="100"
              v-slot:default="scope">
            <el-link  v-if="usePower===1" type="primary" @click="inCompanyAddShow(1,scope)"><i class="el-icon-circle-plus-outline"></i></el-link>
            <el-link  v-if="usePower===1" type="primary" style="margin-left: 8px" @click="inCompanyAddShow(2,scope)"><i class="el-icon-connection"></i></el-link>
            <el-link  type="primary" style="margin-left: 8px" @click="problemInCompanyShow(scope)"><i class="el-icon-chat-line-round"></i></el-link>
          </el-table-column>
        </el-table>
      </div>
      <div v-else-if="association==='零公里'">
        <el-table
            :data="zeroKilometersDataShow"
            border
            style="width: 100%">
          <el-table-column
              prop="occurDate"
              label="发生日期"
              width="130">
          </el-table-column>
          <el-table-column
              prop="engineType"
              label="机型"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="engineNo"
              label="发动机号"
              width="100">
          </el-table-column>
          <el-table-column
              prop="describeUse"
              label="问题描述"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="partName"
              label="零部件名称"
              width="150"
              align="center"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="quantity"
              label="数量"
              width="70">
          </el-table-column>
          <el-table-column
              prop="detailed"
              label="详细信息"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="problemType"
              label="问题归集"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
        </el-table>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="problemAssociationDialog = false">取 消</el-button>
    <el-button type="primary" @click="problemAssociationDialog=false">确 定</el-button>
  </span>
    </el-dialog>
    <!--对IPTV报告的编辑窗口-->
    <el-dialog
        :title="titleUse"
        :visible.sync="iptvReportDialog"
        width="500"
        :before-close="handleClose">
      <div>
        <el-form  :model="iptvReportFrom" label-width="100px" :inline="true">
          <el-form-item label="统计年份:" >
            <el-select v-model="iptvReportFrom.yearData" placeholder="请选择" style="width: 220px">
              <el-option
                  v-for="item in yearOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="统计月份:" >
            <el-select v-model="iptvReportFrom.moonDate" placeholder="请选择" style="width: 220px">
              <el-option
                  v-for="item in moonOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="机   型：">
            <el-select v-model="iptvReportFrom.engineType"  clearable placeholder="请选择" style="width: 220px">
              <el-option
                  v-for="item in engineTypeBigOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="指标名称：">
            <el-select v-model="iptvReportFrom.targetName"  clearable placeholder="请选择" style="width: 220px">
              <el-option
                  v-for="item in targetNameOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="年度目标：">
            <el-input placeholder="输入年度目标" style="width: 220px" v-model="iptvReportFrom.yearTargetVal">%</el-input>
          </el-form-item>
          <el-form-item label="月度目标：">
            <el-input placeholder="输入月度目标" style="width: 220px" v-model="iptvReportFrom.moonTargetVal">%</el-input>
          </el-form-item>
          <el-form-item label="月度数量：">
            <el-input placeholder="月度数量" style="width: 220px" v-model="iptvReportFrom.moonNumber"></el-input>
          </el-form-item>
          <el-form-item label="月度样本：">
            <el-input placeholder="输入月度目标" style="width: 220px" v-model="iptvReportFrom.moonSample"></el-input>
          </el-form-item>
          <el-form-item label="月度达成：">
            <el-input placeholder="月度达成" style="width: 220px" v-model="iptvReportFrom.moonAchieve">PPM</el-input>
          </el-form-item>
          <el-form-item label="月达成比例：">
            <el-input placeholder="月达成比例" style="width: 220px" v-model="iptvReportFrom.moonAchieveRatio">%</el-input>
          </el-form-item>
          <el-form-item label="累计达成：">
            <el-input placeholder="月度达成" style="width: 220px" v-model="iptvReportFrom.addUpAchieve">PPM</el-input>
          </el-form-item>
          <el-form-item label="累计成比例：">
            <el-input placeholder="月达成比例" style="width: 220px" v-model="iptvReportFrom.yearAchieveRatio">%</el-input>
          </el-form-item>
          <el-form-item label="累计目标值：">
            <el-input placeholder="累计目标值" style="width: 220px" v-model="iptvReportFrom.addUpTargetVal">PPM</el-input>
          </el-form-item>
          <el-form-item label="达成趋势：">
            <el-input placeholder="达成趋势" style="width: 220px" v-model="iptvReportFrom.achieveTrend"></el-input>
          </el-form-item>
          <el-form-item label="是否达成：">
            <el-select v-model="iptvReportFrom.isAchieve"  clearable placeholder="请选择" style="width: 220px">
              <el-option
                  v-for="item in optionIsExam"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="关联问题：">
            <el-button style="width: 220px" @click="iptvReportAssociation">
              <span v-if="iptvReportFrom.examNumb==='' || iptvReportFrom.examNumb===null || iptvReportFrom.examNumb===undefined">未关联</span>
              <span v-else>{{iptvReportFrom.examNumb}}</span>
            </el-button>
          </el-form-item>
          <div>
            <el-form-item label="总结信息："  >
              <el-input placeholder="请输总结信息" v-model="iptvReportFrom.information" style="width:550px "></el-input>
            </el-form-item>
          </div>
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="iptvReportDialog = false">取 消</el-button>
    <el-button type="primary" @click="iptvReportEditOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--对IPTV报告的编辑窗口，提前打开观察所有记录的窗口，进行对应编辑-->
    <el-dialog
        :title="titleUse"
        :visible.sync="iptvReportShowDialog"
        width="80%"
        :before-close="handleClose">
      <div>
        <el-table
            :data="iptvReportData"
            border
            style="width: 100%"
            height="400">
          <el-table-column
              label="序号"
              width="50"
              v-slot:default="scope">
            <span>{{scope.$index+1}}</span>
          </el-table-column>
          <el-table-column
              prop="yearData"
              label="统计年份"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="moonDate"
              label="统计月份"
              width="80">
          </el-table-column>
          <el-table-column
              prop="engineType"
              label="机型"
              width="50"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="targetName"
              label="统计指标名称"
              width="130"
              align="center"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="yearTargetVal"
              label="年度目标"
              width="80">
          </el-table-column>
          <el-table-column
              prop="moonNumber"
              label="本月度发生数量"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="moonSample"
              label="本月样本量"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="moonTargetVal"
              label="月度目标"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="moonAchieve"
              label="月度达成"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="addUpTargetVal"
              label="累计目标值"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="addUpAchieve"
              label="累计达成值"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="moonAchieveRatio"
              label="月度达成比例"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="yearAchieveRatio"
              label="年度达成比例"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="isAchieve"
              label="是否达成"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="achieveTrend"
              label="达成趋势"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="examNumb"
              label="关联考核问题"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="information"
              label="总结信息"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              label="编辑"
              v-slot:default="scope">
            <el-link @click="editIPTVReportShow(2,scope)"><i class="el-icon-edit"></i></el-link>
          </el-table-column>
        </el-table>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="editIPTVReportShow(3,null)">插入一行</el-button>
    <el-button @click="iptvReportShowDialog = false">取 消</el-button>
    <el-button type="primary" @click="iptvReportShowDialog = false">确 定</el-button>
  </span>
    </el-dialog>
    <!--在IPTV报告中，点击了关联问题的按钮，进行问题关联-->
    <el-dialog
        :title="titleUse1"
        :visible.sync="iptvReportProblemRelationDialog"
        width="80%"
        :before-close="handleClose">
      <div v-if="iptvReportFrom.targetName==='零公里'">
        <el-table
            :data="zeroKilometersData"
            border
            style="width: 100%"
            tooltip-effect="dark"
            @selection-change="handleSelectionChange">
          <el-table-column
              type="selection"
              width="55">
          </el-table-column>
          <el-table-column
              prop="occurDate"
              label="发生日期"
              width="130">
          </el-table-column>
          <el-table-column
              prop="engineType"
              label="机型"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="engineNo"
              label="发动机号"
              width="100">
          </el-table-column>
          <el-table-column
              prop="describeUse"
              label="问题描述"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="partName"
              label="零部件名称"
              width="150"
              align="center"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="quantity"
              label="数量"
              width="70">
          </el-table-column>
          <el-table-column
              prop="detailed"
              label="详细信息"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              prop="problemType"
              label="问题归集"
              width="80"
              :show-overflow-tooltip="true">
          </el-table-column>
          <el-table-column
              label="编辑"
              width="120"
              v-slot:default="scope">
            <el-link  type="primary" style="margin-left: 8px" @click="problemZeroKilometerShow(scope)"><i class="el-icon-chat-line-round"></i></el-link>
          </el-table-column>
        </el-table>
      </div>
      <div v-if="iptvReportFrom.targetName==='IPTV3'
                  || iptvReportFrom.targetName==='IPTV6'
                  || iptvReportFrom.targetName==='IPTV12'
                  || iptvReportFrom.targetName==='IPTV24'
                  || iptvReportFrom.targetName==='IPTV36'">
        <div style="display: flex; align-items: center; margin-bottom: 8px">
          <el-radio-group v-model="iptvType">
            <el-radio label="IPTV3">IPTV3</el-radio>
            <el-radio label="IPTV12">IPTV12</el-radio>
            <el-radio label="IPTV24">IPTV24</el-radio>
            <el-radio label="IPTV36">IPTV36</el-radio>
            <el-radio label="All Problem">All Problem</el-radio>
          </el-radio-group>
          <span style="margin-left: 5px">|</span>
          <el-date-picker
              type="months"
              v-model="selectMoon"
              placeholder="选择一个或多个月"
              format="yyyyMM"
              value-format="yyyyMM"
              size="small"
              style="margin-left: 10px">
          </el-date-picker>
          <span style="margin-left: 5px">|</span>
          <el-button size="small" style="margin-left: 10px" @click="selectIPTV">筛选</el-button>
          <span style="margin-left: 5px">|</span>
          <el-input placeholder="请输入发动机号" style="margin-left: 5px;width: 120px" size="small" v-model="engineNoSelect"></el-input>
          <span style="margin-left: 5px">|</span>
          <el-select v-model="drawingSelect" clearable filterable placeholder="请选择零部件" style="width:150px;margin-left: 10px; " size="small">
            <el-option
                v-for="item in productModelListOption"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>

        </div>
        <div>
          <el-table
              :data="warrantyClaimData"
              border
              style="width: 100%;"
              tooltip-effect="dark"
              @selection-change="handleSelectionChange"
              height="400">
            <el-table-column
                type="selection"
                width="55">
            </el-table-column>
            <el-table-column
                label="序号"
                v-slot:default="scope"
                fixed
                width="50">
              {{scope.$index+1}}
            </el-table-column>
            <el-table-column
                prop="engineNo"
                label="发动机号"
                width="110"
                sortable>
            </el-table-column>
            <el-table-column
                prop="mileage"
                label="里程"
                width="70">
            </el-table-column>
            <el-table-column
                prop="productionDate"
                label="生产日期"
                width="95">
            </el-table-column>
            <el-table-column
                prop="warrantyStartingDate"
                label="销售日期"
                width="95">
            </el-table-column>
            <el-table-column
                prop="repairCompletedDate"
                label="维修日期"
                width="95">
            </el-table-column>
            <el-table-column
                prop="partName"
                label="零部件名称"
                width="100"
                v-slot:default="scope"
                :show-overflow-tooltip="true">
                      <span v-if="scope.row.partName.split('/').length===0">
                        {{scope.row.partName}}
                      </span>
              <span v-else>
                        {{scope.row.partName.split('/')[0]}}
                      </span>

            </el-table-column>
            <el-table-column
                prop="faultDescriptionChinese"
                label="故障描述"
                :show-overflow-tooltip="true"
                width="200">
            </el-table-column>
            <el-table-column
                prop="disposalResultChinese"
                label="处理结果"
                :show-overflow-tooltip="true"
                width="200"
                v-slot:default="scope">
              {{scope.row.disposalResultChinese}}
            </el-table-column>
            <el-table-column
                prop="problemType"
                label="问题归集"
                width="110"
                v-slot:default="scope"
                sortable>
              <span>{{scope.row.problemType}}</span>
              <el-link  type="primary" style="margin-left: 8px" @click="problemWarrantyShow(scope)"><i class="el-icon-chat-line-round"></i></el-link>
            </el-table-column>
            <el-table-column
                prop="isExam"
                label="考核"
                width="80"
                sortable>
            </el-table-column>
            <el-table-column
                prop="iPTV3"
                label="IPTV3"
                width="70">
            </el-table-column>
            <el-table-column
                prop="iPTV12"
                label="IPTV12"
                width="70">
            </el-table-column>
            <el-table-column
                prop="iPTV24"
                label="IPTV24"
                width="70">
            </el-table-column>
            <el-table-column
                prop="iPTV36"
                label="IPTV36"
                width="70">
            </el-table-column>
          </el-table>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="iptvReportProblemRelationDialog = false">取 消</el-button>
    <el-button type="primary" @click="iptvReportProblemRelationOk">确 定</el-button>
  </span>
    </el-dialog>
    <!--抽屉放置区域-->
    <!--问题解决的抽屉-->
    <el-drawer
        :visible.sync="problemSolvingDrawer"
        direction="ttb"
        :before-close="handleClose"
        :with-header="false"
        size="90%"
        style="overflow: scroll">
      <div style="width: 98%;overflow: clip; border: 1px solid black;margin-left: 25px;margin-right: 25px;margin-top: 10px">
        <table style="width: 100%; border-collapse: collapse; border: 1px solid blue;">
          <tbody>
          <tr>
            <td style="width: auto; padding: 10px; border: 1px solid blue;">
              <div style="text-align: left;font-size: 17px;color: red;margin-left: 15px">
                <el-link style="font-size: 18px;color: red;margin-bottom: 5px" @click="editProb(1)">结论先行:</el-link>&nbsp;
                <span>{{problemDataForm.conclusion}}</span>
              </div>
            </td>
            <td style="width: 150px; padding: 10px; border: 1px solid blue;text-align: left" >
              <el-link @click="editProb(26)">编制：{{problemDataForm.writeName}}</el-link></td>
            <td style="width: 150px; padding: 10px; border: 1px solid blue;text-align: left">
              <el-link @click="editProb(24)" :disabled="disabledIsExamine">审核：{{problemDataForm.examineName}}</el-link>
            </td>
            <td style="width: 150px; padding: 10px; border: 1px solid blue;text-align: left">
              <el-link @click="editProb(25)" :disabled="disabledIsExamine">批准：{{problemDataForm.approveName}}</el-link>
            </td>
          </tr>
          </tbody>
        </table>
        <table class="blue-border">
          <thead class="tableTh">
          <tr class="tableTr">
            <th class="tableTh" style="width: 100px">问题描述</th>
            <th class="tableTh" style="width: 500px">原因分析</th>
            <th class="tableTh" colspan="2">整改对策</th>
            <th class="tableTh" style="width: 110px">完成时间</th>
            <th class="tableTh" style="width: 100px">负责人</th>
          </tr>
          </thead>
          <tbody>
          <!-- 第一行 -->
          <tr>
            <td rowspan="6" style="text-align: left;">
              <el-link style="font-size: 18px;color: red" @click="editProb(2)">问题描述：</el-link>
              <br><br>
              <div v-html="problemDataForm.describeUse"></div>
              <br><br>
              <el-link style="font-size: 18px;color: red" @click="editProb(3)">数量/次数：</el-link>
              {{problemDataForm.quantity}}
            </td>
            <td rowspan="6" style="text-align: left;">
              <el-link style="font-size: 18px;color: red" @click="editProb(4)">现状调查：</el-link><br>
              <div v-html="problemDataForm.statusUse"></div>
              <el-link style="font-size: 18px;color: red" @click="editProb(5)">发生源(产生问题的作用源）：</el-link><br>
              <div v-html="problemDataForm.origin"></div>
              <el-link style="font-size: 18px;color: red" @click="editProb(6)">流出源（含预测、预防）：</el-link><br>
              <div v-html="problemDataForm.outflow"></div>
            </td>
            <td style="width: 50px">
              <el-link @click="editProb(7)">纠正/遏制</el-link>
            </td>
            <td style="width: 450px">
              <div v-html="problemDataForm.correct" style="text-align: left"></div>
            </td>
            <td style="text-align: right">
              <span v-html="problemDataForm.correctDate"></span>&nbsp;
              <el-link>
                <i class="el-icon-edit" @click="editProb(8)"></i>
              </el-link>
            </td>
            <td style="text-align: right">
              <span v-html="problemDataForm.correctLiability"></span>&nbsp;
              <el-link>
                <i class="el-icon-edit" @click="editProb(9)"></i>
              </el-link>
            </td>
          </tr>
          <!-- 第二行 -->
          <tr>
            <td rowspan="4">纠正措施</td>
            <td rowspan="2" style="text-align: left;">
              <el-link style="font-size: 18px;color: red" @click="editProb(10)">临时措施：</el-link>
              <div v-html="problemDataForm.temporaryUse" style="text-align: left"></div>
            </td>
            <td rowspan="2" style="text-align: right">
              <span v-html="problemDataForm.temporaryDate"></span>&nbsp;
              <el-link @click="editProb(11)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
            <td rowspan="2" style="text-align: right">
              <span v-html="problemDataForm.temporaryLiability"></span>&nbsp;
              <el-link @click="editProb(12)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
          </tr>
          <!-- 第三行 -->
          <tr>
          </tr>
          <!-- 第四行 -->
          <tr>
            <td rowspan="2" style="text-align: left;">
              <el-link style="font-size: 18px;color: red" @click="editProb(13)">长远措施：</el-link>
              <div v-html="problemDataForm.permanent" style="text-align: left"></div>
            </td>
            <td rowspan="2" style="text-align: right">
              <span v-html="problemDataForm.permanentDate"></span>&nbsp;
              <el-link @click="editProb(14)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
            <td rowspan="2" style="text-align: right">
              <span v-html="problemDataForm.permanentLiability"></span>&nbsp;
              <el-link @click="editProb(15)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
          </tr>
          <!-- 第五行 -->
          <tr>
          </tr>
          <!-- 第六行 -->
          <tr>
            <td>
              <el-link @click="editProb(16)">不足反省</el-link>
            </td>
            <!-- 重复添加数据单元格，直到有7个 -->
            <td style="text-align: left;">
              <div v-html="problemDataForm.introspection"></div>
            </td>
            <td style="text-align: right">
              <span v-html="problemDataForm.introspectionDate"></span>&nbsp;
              <el-link @click="editProb(17)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
            <td style="text-align: right">
              <span v-html="problemDataForm.introspectionLiability"></span>&nbsp;
              <el-link @click="editProb(18)">
                <i class="el-icon-edit"></i>
              </el-link>
            </td>
          </tr>
          <!-- 第七行 -->
          <tr>
            <td>
              <el-link
                  style="color: red;font-weight: bold;font-size: 16px"
                  @click="editProb(21)" :disabled="disabledIsReport"
              >汇报：{{problemDataForm.report}}</el-link>
            </td>
            <td style="text-align: left;">
              <span>发生日期：{{problemDataForm.occurDate}}</span>
              <span style="margin-left: 20px">记录日期：{{problemDataForm.establishTime}}</span>
            </td>
            <td>
              <el-link>
                切换信息
              </el-link>
            </td>
            <td style="text-align:left">
              <el-link style="font-weight: bold;font-size: 16px" @click="editProb(19)">切换时间：{{problemDataForm.switchDate}}</el-link>
              <el-link style="font-weight: bold;font-size: 16px;margin-left: 15px" @click="editProb(20)" >切换号：{{problemDataForm.switchNumber}}</el-link>
            </td>
            <td style="text-align: center">
              <el-link style="font-weight: bold;font-size: 16px" :disabled="disabledIsFinish" @click="editProb(22)">结题状态</el-link>
            </td>
            <td style="text-align: right">
              <div>
                {{problemDataForm.finish}}
              </div>
            </td>
          </tr>
          <!-- 第八行 -->
          <tr>
            <td>
              <el-link>责任判定</el-link>
            </td>
            <td style="text-align: left;">
              <span>责任方：</span>
              <span style="margin-right: 10px">XXXX供方</span>
              <span>是否索赔：</span>
              <span style="margin-right: 15px">否</span>
              <span>是否完成：</span>
              <span>不涉及</span>
            </td>
            <td>
              ————
            </td>
            <td style="text-align: left">
              ————
            </td>
            <td style="text-align: center">
              ————
            </td>
            <td style="text-align: right">
              <div>
                ————
              </div>
            </td>
          </tr>
          </tbody>
        </table>
      </div>
    </el-drawer>
  </div>
</template>

<script>
import E from 'wangeditor';
import {
  customerWorkshop,
  machiningAssembly,
  opList,
  optionWorkshopNew,
  optionWorkshopOnly,
  workshopAssembly, workshopAssemblyNew,
} from "@/configUse";
import _, {toInteger} from "lodash";
import * as XLSX from 'xlsx'
import * as echarts from "echarts"

export default {
  name: "problemManagementNew",
  components: {},
  data() {
    return {
      //测试用
      value1:'',
      problemAddORSelect:false,//弹窗，添加一个问题,或者选择的popover，弹出框(零公里/市场问题）
      problemAddORSelect1:false,//弹窗，添加一个问题,或者选择的popover，弹出框(转储问题）
      problemAddORSelect2:false,//弹窗，添加一个问题,或者选择的popover，弹出框(零部件工程内）
      activeName:'ProblemSolving',
      //用户权限相关的变量
      useName:'',//用户名称
      useId:'',//用户编号
      usePower:'',//用户权限
      languageS:'chinese',//记录语言选择

      //选择主菜单的内容
      mianSelect:1,//1：代表是查看问题的；2：代表是查看IPTV月报的；
      //页面选择不同语言进行切换
      languageType:{
        //索赔单中，故障描述的变量
        faultDescription:'faultDescriptionChinese'
        //索赔单中，故障处理结果的变量
      },
      buttonDoe:1,//用户选择的是那个按钮
      buttonBackColor1:'',//按钮的背景颜色
      buttonColor1:'',//按钮的字体颜色
      buttonBackColor2:'',//按钮的背景颜色
      buttonColor2:'',//按钮的字体颜色
      buttonBackColor3:'',//按钮的背景颜色
      buttonColor3:'',//按钮的字体颜色
      buttonBackColor4:'',//按钮的背景颜色
      buttonColor4:'',//按钮的字体颜色
      buttonBackColor5:'blue',//按钮的背景颜色
      buttonColor5:'white',//按钮的字体颜色
      buttonBackColor6:'',//按钮的背景颜色
      buttonColor6:'',//按钮的字体颜色
      buttonBackColor7:'',//按钮的背景颜色
      buttonColor7:'',//按钮的字体颜色
      iptvType:'All Problem',//iptv选择器
      optionWorkshopNew:optionWorkshopNew,//记录车间名称的选择器
      customerWorkshop:customerWorkshop,//记录顾客环节的选择器
      optionWorkshopOnly:optionWorkshopOnly,//仅有车间的车间名称

      optionLineName:null,//记录是那个线体
      optionType1:[
        {label:'工程内',value: '工程内'},
        {label:'零公里',value: '零公里'},
        {label:'IPTV3',value: 'IPTV3'},
        {label:'IPTV6',value: 'IPTV6'},
        {label:'IPTV12',value: 'IPTV12'},
        {label:'IPTV24',value: 'IPTV24'},
        {label:'IPTV36',value: 'IPTV36'}
      ],//记录问题类型
      optionIsExam:[
        {label:'是',value:'是'},
        {label:'否',value:'否'}
      ],//记录问题是否考核
      //是和否的英文类型
      optionIsExamEnglish:[
        {label:'Yes',value:'Yes'},
        {label:'No',value:'No'}
      ],
      productModelListOption:[{
        label:1,value:1,
      }],//零部件名称，供方等信息

      lineName:[],//记录线体名称的选择器
      op:opList,//记录工序号的选择器
      //记录的是报警问题的列表
      //问题列表
      problemData:[{
        id:null,//主键
        establishTime:'11',//创建时间
        updateTime:'11',//修改时间
        deleteSign:'11',//删除标记
        editName:'',//编辑人
        workshop: '',// 车间名称
        lineName:'',//线体名称
        drawing: '', //产品图号,含产品名称
        op: '',//工序号
        occurDate: '',//发生日期
        noteTaker: '',//记录人
        liability: '',//责任人
        liabilityNub: '',//责任人工号
        problemName: '',//问题名称
        describeUse: '',//问题描述
        describeAnnex:'',//问题描述的图片附件
        quantity: 1,//问题数量
        introspection: '',//反思
        statusUse: '',//现状调查
        //发生源
        origin: '',
        //流出源
        outflow: '',
        //临时措施
        temporaryUse: '',
        //长远措施
        permanent: '',
        //纠正
        correct: '',
        //切换发动机/零部件号日期
        switchDate: '',
        //切换发动机号/零部件号
        switchNumber: '',
        //“纠正”的完成时间
        correctDate: '',
        //"纠正的"负责人
        correctLiability: '',
        //“临时措施”的完成时间
        temporaryDate: '',
        //"临时措施"的负责人
        temporaryLiability: '',
        //“长远措施”的完成时间
        permanentDate: '',
        //"长远措施"的负责人
        permanentLiability: '',
        //“不足反省”的完成时间
        introspectionDate: '',
        //"不足反省"的负责人
        introspectionLiability: '',
        //结论先行
        conclusion: '',
        //结题状态标签
        finish: '否',
        //记录是否需要汇报
        report: '',
        //大的分类的
        type1: '',
        //小分类
        type2: '',
        //编制人
        writeName:'',
        //审核
        examineName:'',
        //批准
        approveName:'',
        //责任方
        liabilityName:'',
        //是否索赔
        isIndemnify:'',
        //是否完成索赔
        isEndIndemnify:'',
        //供应商名称
        supplierName:'',
        //关联板块名:"机"
        machinePlateName:'',
        //关联板块id；“机”
        machinePlateId:'',
        //关联板块名:"人"
        peoplePlateName:'',
        //关联板块id；“人”
        peoplePlateId:'',
        //关联板块名："料“
        materialPlateName:'',
        //关联板id：’料‘
        materialPlateId:'',
        //关联板块名：’法‘
        methodPlateName:'',
        //关联板块id；“法”
        methodPlateId:'',
        //关联板块名：’环‘
        environmentPlateName:'',
        //关联板块id；“环”
        environmentPlateId:'',
        //关联板块名：’测‘
        measurePlateName:'',
        //关联板块id；“测”
        measurePlateId:'',
        //是否考核
        isExam:'否',
        //销售日期
        saleDate:'',
        //行驶里程
        mileage:'',
        //经销商代码（服务站名称）
        serviceId:'',
        //发动机号或零部件名称
        partName:'',
      }],
      //问题列表最全的备份，准备的是恢复到刚打开的状态，为的是前端筛选用
      problemDataCopy:[{
        id:null,//主键
        establishTime:'11',//创建时间
        updateTime:'11',//修改时间
        deleteSign:'11',//删除标记
        editName:'',//编辑人
        workshop: '',// 车间名称
        lineName:'',//线体名称
        drawing: '', //产品图号,含产品名称
        op: '',//工序号
        occurDate: '',//发生日期
        noteTaker: '',//记录人
        liability: '',//责任人
        liabilityNub: '',//责任人工号
        problemName: '',//问题名称
        describeUse: '',//问题描述
        describeAnnex:'',//问题描述的图片附件
        quantity: 1,//问题数量
        introspection: '',//反思
        statusUse: '',//现状调查
        //发生源
        origin: '',
        //流出源
        outflow: '',
        //临时措施
        temporaryUse: '',
        //长远措施
        permanent: '',
        //纠正
        correct: '',
        //切换发动机/零部件号日期
        switchDate: '',
        //切换发动机号/零部件号
        switchNumber: '',
        //“纠正”的完成时间
        correctDate: '',
        //"纠正的"负责人
        correctLiability: '',
        //“临时措施”的完成时间
        temporaryDate: '',
        //"临时措施"的负责人
        temporaryLiability: '',
        //“长远措施”的完成时间
        permanentDate: '',
        //"长远措施"的负责人
        permanentLiability: '',
        //“不足反省”的完成时间
        introspectionDate: '',
        //"不足反省"的负责人
        introspectionLiability: '',
        //结论先行
        conclusion: '',
        //结题状态标签
        finish: '否',
        //记录是否需要汇报
        report: '',
        //大的分类的
        type1: '',
        //小分类
        type2: '',
        //编制人
        writeName:'',
        //审核
        examineName:'',
        //批准
        approveName:'',
        //责任方
        liabilityName:'',
        //是否索赔
        isIndemnify:'',
        //是否完成索赔
        isEndIndemnify:'',
        //供应商名称
        supplierName:'',
        //关联板块名:"机"
        machinePlateName:'',
        //关联板块id；“机”
        machinePlateId:'',
        //关联板块名:"人"
        peoplePlateName:'',
        //关联板块id；“人”
        peoplePlateId:'',
        //关联板块名："料“
        materialPlateName:'',
        //关联板id：’料‘
        materialPlateId:'',
        //关联板块名：’法‘
        methodPlateName:'',
        //关联板块id；“法”
        methodPlateId:'',
        //关联板块名：’环‘
        environmentPlateName:'',
        //关联板块id；“环”
        environmentPlateId:'',
        //关联板块名：’测‘
        measurePlateName:'',
        //关联板块id；“测”
        measurePlateId:'',
        //是否考核
        isExam:'否',
        //销售日期
        saleDate:'',
        //行驶里程
        mileage:'',
        //经销商代码（服务站名称）
        serviceId:'',
      }],
      //问题解决页的列表数据problemDataForm
      problemDataForm: {
        id:null,//主键
        establishTime:'11',//创建时间
        updateTime:'11',//修改时间
        deleteSign:'11',//删除标记
        editName:'',//编辑人
        workshop: '',// 车间名称
        lineName:'',//线体名称
        drawing: '', //产品图号,含产品名称
        op: '',//工序号
        occurDate: '',//发生日期
        noteTaker: '',//记录人
        liability: '',//责任人
        liabilityNub: '',//责任人工号
        problemName: '',//问题名称
        describeUse: '',//问题描述
        describeAnnex:'',//问题描述的图片附件
        quantity: 1,//问题数量
        introspection: '',//反思
        statusUse: '',//现状调查
        //发生源
        origin: '',
        //流出源
        outflow: '',
        //临时措施
        temporaryUse: '',
        //长远措施
        permanent: '',
        //纠正
        correct: '',
        //切换发动机/零部件号日期
        switchDate: '',
        //切换发动机号/零部件号
        switchNumber: '',
        //“纠正”的完成时间
        correctDate: '',
        //"纠正的"负责人
        correctLiability: '',
        //“临时措施”的完成时间
        temporaryDate: '',
        //"临时措施"的负责人
        temporaryLiability: '',
        //“长远措施”的完成时间
        permanentDate: '',
        //"长远措施"的负责人
        permanentLiability: '',
        //“不足反省”的完成时间
        introspectionDate: '',
        //"不足反省"的负责人
        introspectionLiability: '',
        //结论先行
        conclusion: '',
        //结题状态标签
        finish: '否',
        //记录是否需要汇报
        report: '',
        //大的分类的
        type1: '',
        //小分类
        type2: '',
        //编制人
        writeName:'',
        //审核
        examineName:'',
        //批准
        approveName:'',
        //责任方
        liabilityName:'',
        //是否索赔
        isIndemnify:'',
        //是否完成索赔
        isEndIndemnify:'',
        //供应商名称
        supplierName:'',
        //关联板块名:"机"
        machinePlateName:'',
        //关联板块id；“机”
        machinePlateId:'',
        //关联板块名:"人"
        peoplePlateName:'',
        //关联板块id；“人”
        peoplePlateId:'',
        //关联板块名："料“
        materialPlateName:'',
        //关联板id：’料‘
        materialPlateId:'',
        //关联板块名：’法‘
        methodPlateName:'',
        //关联板块id；“法”
        methodPlateId:'',
        //关联板块名：’环‘
        environmentPlateName:'',
        //关联板块id；“环”
        environmentPlateId:'',
        //关联板块名：’测‘
        measurePlateName:'',
        //关联板块id；“测”
        measurePlateId:'',
        //是否考核
        isExam:'否',
        //销售日期
        saleDate:'',
        //行驶里程
        mileage:'',
        //经销商代码（服务站名称）
        serviceId:'',
        //发动机号或零部件名称
        partName:'',
      },//问题解决页的表单函数
      //编辑问题的状态记录
      problemDataDoe:'',
      //点击问题的Scope格式
      problemDataScope:null,
      problemAddShowDoe:null,//用户添加问题，记录用户现在的是哪里的问题添加
      titleUse:'提示',//弹窗上的提示
      titleUse1:'提示',//第二层弹窗上的提示
      exceptionDialog:false,//编辑报警、异常解除控制的弹窗
      dialogVisibleAddP:false,//关联报警、异常与问题解决的弹窗：是要新增一个问题
      editProblemOneTextBigDialog:false,//编辑问题的一个文本框，是一个大的。
      generalFullTextDialog:false,//通用：编辑一个富文本的弹窗
      fullTextDialog:false,//编辑问题的一个文本框，是富文本
      nmbDialog:false,//编辑问题输入一个数值的控制弹窗
      dateDialog:false,//编辑问题输入一个日期格式，是字符串YYYY-MM-dd
      nameDialog:false,//编辑问题输入一个短的文本
      yesDialog:false,//编辑问题，一个选择是和否的弹窗
      dialogVisible:false,//通用，一个确定是否要删除数据的页面
      isProblemVisible:false,//一个测试弹窗
      selectProblemDialog:false,//选择关联问题的弹窗
      warrantyClaimDialog:false,//控制增加索赔列表的数据
      warrantyClaimAddDialog:false,//通过索赔列表，添加问题的弹窗列表
      inCompanyAddDialog:false,//通过不记录表，控制添加问题的弹窗列表
      inCompanyMainAddDialog:false,//通过主导航，插入一项问题弹窗
      warrantyDeleteDialog:false,//控制删除一个索赔单的弹窗
      zeroKilometerDeleteDialog:false,//控制删除一个过程问题（零公里问题）的一个弹窗
      problemSolvingDrawer:false,//显示问题的抽屉
      problemDeleteDialog:false,//删除一项问题的弹窗
      warrantyClaimEditDialog:false,//编辑索赔单中的信息
      warrantyClaimEditIsBackDialog:false,//编辑索赔单中的是否返回故障件信息
      problemAssociationDialog:false,//问题查看的弹窗
      zeroKilometersEditDialog:false,//添加/编辑一个零公里问题清单
      zeroKilometersAddDialog:false,//通过0公里板块，添加一项问题的弹窗
      iptvReportDialog:false,//对IPTV报告编辑的弹框
      iptvReportProblemRelationDialog:false,//在编辑IPTV报告的时候，选择关联问题的弹窗控制
      iptvReportShowDialog:false,//点击需要编辑IPTV报告的需求，弹出所有的报告数据

      occurTime:'',//发生时间
      isProblemContactDoe:0,//记录是对问题关联的类型：1.新增问题；2.关联已有问题；3.问题挂起
      editProblemItem:'',//编辑问题时，显示项目的名称
      editProblemText:'',//编辑问题时，关联的用户输入内容；
      inputNub:0,//编辑问题时，显示的一个数值
      inputName:'',//编辑问题时，输入一个短文本，用在了负责人姓名上；
      valueDate:'',//编辑问题时，显示的一个日期文本
      valueYes:false,//放置选择是、否的按钮中
      information:'提示',//弹窗上显示信息的
      selectProblemFrom:{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人
        workshop: '',// 车间名称
        lineName:'',//线体名称
        drawing: '', //产品图号,含产品名称
        op: '',//工序号
        occurDate: '',//发生日期
        noteTaker: '',//记录人
        liability: '',//责任人
        liabilityNub: '',//责任人工号
        problemName: '',//问题名称
        describeUse: '',//问题描述
        describeAnnex:'',//问题描述的图片附件
        quantity:null,//问题数量
        introspection: '',//反思
        statusUse: '',//现状调查
        //发生源
        origin: '',
        //流出源
        outflow: '',
        //临时措施
        temporaryUse: '',
        //长远措施
        permanent: '',
        //纠正
        correct: '',
        //切换发动机/零部件号日期
        switchDate: '',
        //切换发动机号/零部件号
        switchNumber: '',
        //“纠正”的完成时间
        correctDate: '',
        //"纠正的"负责人
        correctLiability: '',
        //“临时措施”的完成时间
        temporaryDate: '',
        //"临时措施"的负责人
        temporaryLiability: '',
        //“长远措施”的完成时间
        permanentDate: '',
        //"长远措施"的负责人
        permanentLiability: '',
        //“不足反省”的完成时间
        introspectionDate: '',
        //"不足反省"的负责人
        introspectionLiability: '',
        //结论先行
        conclusion: '',
        //结题状态标签
        finish: '否',
        //记录是否需要汇报
        report: '',
        //大的分类的
        type1: '',
        //小分类
        type2: '',
        //关联板块名:"机"
        machinePlateName:'',
        //关联板块id；“机”
        machinePlateId:'',
        //关联板块名:"人"
        peoplePlateName:'',
        //关联板块id；“人”
        peoplePlateId:'',
        //关联板块名："料“
        materialPlateName:'',
        //关联板id：’料‘
        materialPlateId:'',
        //关联板块名：’法‘
        methodPlateName:'',
        //关联板块id；“法”
        methodPlateId:'',
        //关联板块名：’环‘
        environmentPlateName:'',
        //关联板块id；“环”
        environmentPlateId:'',
        //关联板块名：’测‘
        measurePlateName:'',
        //关联板块id；“测”
        measurePlateId:'',
        //发动机号或零部件名称
        partName:'',
      },//选择问题形成的行表单
      //零部件名称、供方等信息
      productModelList: [{
        id: '', // id
        createTime: null, // 创建时间，使用 null 或 Date 对象
        updateTime: null, // 更新时间，使用 null 或 Date 对象
        creator: '', // 创建人
        processStatus: '', // 流程状态
        sysUpdateUser: '', // 更新人
        sysAuditUser: '', // 审核人
        sysAuditTime: null, // 审核时间，使用 null 或 Date 对象
        sysDeleted: false, // 逻辑删除，通常使用布尔值表示是否已删除
        cpxh: '', // 产品型号
        lbjmc_C: '', // 零部件名称_中文
        lbjmc_E: '', // 零部件名称_英文
        lbjmc_R: '', // 零部件名称_俄文
        sccj: '' // 生产厂家
      }],
      disabledOp:true,//控制工序选择器是否可用
      disabledLineName:true,//控制线体选择器是否可用
      disabledIsFinish:true,//控制是否可结题
      disabledIsReport:true,//控制是否要汇报
      disabledIsExamine:true,//记录是否能进行审核和批准
      association:'市场问题',//控制用户选择的是要看关联问题中的哪一项

      //筛选用到的变量
      severalMoon:'',//记录筛选的多个月
      //文件列表
      fileListExcel:null,
      //记录用户选择的是那个月：用在了多维度分析上
      valueMoon:'',

      //售后市场索赔单号的变量
      warrantyClaimData:[{
        //主键
        id:null,
        //创建时间
        establishTime:'11',
        //修改时间
        updateTime:'11',
        //删除标记
        deleteSign:'11',
        //编辑人
        editName:'',
        // 序号
        serialNo: null,
        // 经销商索赔编号
        dealerClaimNo: null,
        // 索赔编号
        claimNo: null,
        // 车辆识别码（Vehicle Identification Number）
        vin: null,
        // 索赔类型
        claimType: null,
        // 审核状态
        reviewStatus: null,
        // 可能是指某种特定于流程或系统的编号（具体含义可能因公司而异）
        pwaNo: null,
        // 经销商代码
        dealerCode: null,
        // 经销商名称
        dealerName: null,
        // 品牌
        brand: null,
        // 保修开始日期
        warrantyStartingDate: null,
        // 车型系列
        vehicleSeries: null,
        // 里程数
        mileage: null,
        // 活动代码（可能是指某种促销活动或召回活动的代码）
        campaignCode: null,
        // 生产日期
        productionDate: null,
        // 备件购买日期
        purchasedDateOfSparePart: null,
        // 发动机编号
        engineNo: null,
        // 变速箱编号
        transmissionNo: null,
        // 车牌号
        licensePlateNo: null,
        // 国家
        country: null,
        // 城市
        city: null,
        // 到货日期（可能是指车辆或备件到达经销商的日期）
        arrivalDate: null,
        // 修理完成日期
        repairCompletedDate: null,
        // 制造商
        manufacturer: null,
        // 供应商代码
        supplierCode: null,
        // 主要工时代码
        mainLaborCode: null,
        // 主要工时名称（可能是指维修工作的具体项目）
        mainLaborName: null,
        // 主要零件代码
        mainPartCode: null,
        // 主要零件名称，是服务站报上来的名称
        mainPartName: null,
        // 系统（可能是指车辆中的某个系统，如电气系统、发动机系统等）
        systemUse: null,
        // 子系统
        subSystem: null,
        // 故障位置代码
        faultPositionCode: null,
        // 故障症状名称
        faultSymptomName: null,
        // 故障原因名称
        faultReasonName: null,
        // 分包类型（可能是指维修工作中是否涉及到了分包给其他公司或个人的情况）
        subletType: null,
        // 返回次数（可能是指备件或车辆因故障被返回的次数）
        returnTimes: null,
        // 故障描述，是原表中的俄文
        faultDescription: null,
        //故障描述，是人工翻译的中文
        faultDescriptionChinese: null,
        // 处理结果，是原表中的俄文
        disposalResult: null,
        // 处理结果，人工翻译的中文
        disposalResultChinese: null,
        // 备注
        remarks: null,
        // 工时费
        laborCost: null,
        // 零件费
        partCost: null,
        // 零件补偿费（可能是指因质量问题而给予的补偿）
        partCompensationCost: null,
        // 工时奖励金额（这个字段可能有误，通常不这样表述，可能是指某种奖励或补贴）
        rewardAmountOfLabor: null,
        // 外包费用
        outsourcingCost: null,
        // 申请金额
        appliedAmount: null,
        // 索赔追踪金额（可能是指用于追踪索赔进度的资金）
        claimTracingAmount: null,
        // 申请日期
        applicationDate: null,
        // 创建人
        creator: null,
        // 审核人
        reviewer: null,
        // 审核日期
        reviewDate: null,
        // 首次审核日期
        firstReviewDate: null,
        //记录这个索赔信息对应的问题关联类型：‘新增’，代表它是新增加的一个问题；‘关联’，是指以前已经有了，关联过去的。
        problemType:'',
        //记录问题的id
        problemId:'',
        //是否考核
        isExam:'',
        // IPTV3
        iPTV3:'',
        //IPTV6
        iPTV6:'',
        //IPTV12
        iPTV12:'',
        //IPTV24
        iPTV24:'',
        //IPTV36
        iPTV36:'',
        //零部件名称
        partName:'',
        //供应商名称
        supplierName:'',
        //调查结论，主要用作原因归类用的
        investigate:'',
        //是否需要调返故障件
        isBack:'',
        //调返提出人
        backName:'',
        //调返提出时间
        backProposeDate:'',
        //调返到发动机车间时间
        backRUSEngineDate:'',
        //调返到发动机车间交接人
        backRUSEngineName:'',
        //是否返回国内
        isBackChina:'',
        //返回国内时间
        backCNDate:'',
        //返回国内接收人
        backCNName:'',
      }],
      warrantyClaimDataShow:[],
      //售后市场索赔单号的表单变量
      warrantyClaimFrom:{
        //主键
        id:null,
        //创建时间
        establishTime:'11',
        //修改时间
        updateTime:'11',
        //删除标记
        deleteSign:'11',
        //编辑人
        editName:'',
        // 序号
        serialNo: null,
        // 经销商索赔编号
        dealerClaimNo: null,
        // 索赔编号
        claimNo: null,
        // 车辆识别码（Vehicle Identification Number）
        vin: null,
        // 索赔类型
        claimType: null,
        // 审核状态
        reviewStatus: null,
        // 可能是指某种特定于流程或系统的编号（具体含义可能因公司而异）
        pwaNo: null,
        // 经销商代码
        dealerCode: null,
        // 经销商名称
        dealerName: null,
        // 品牌
        brand: null,
        // 保修开始日期
        warrantyStartingDate: null,
        // 车型系列
        vehicleSeries: null,
        // 里程数
        mileage: null,
        // 活动代码（可能是指某种促销活动或召回活动的代码）
        campaignCode: null,
        // 生产日期
        productionDate: null,
        // 备件购买日期
        purchasedDateOfSparePart: null,
        // 发动机编号
        engineNo: null,
        // 变速箱编号
        transmissionNo: null,
        // 车牌号
        licensePlateNo: null,
        // 国家
        country: null,
        // 城市
        city: null,
        // 到货日期（可能是指车辆或备件到达经销商的日期）
        arrivalDate: null,
        // 修理完成日期
        repairCompletedDate: null,
        // 制造商
        manufacturer: null,
        // 供应商代码
        supplierCode: null,
        // 主要工时代码
        mainLaborCode: null,
        // 主要工时名称（可能是指维修工作的具体项目）
        mainLaborName: null,
        // 主要零件代码
        mainPartCode: null,
        // 主要零件名称
        mainPartName: null,
        // 系统（可能是指车辆中的某个系统，如电气系统、发动机系统等）
        system: null,
        // 子系统
        subSystem: null,
        // 故障位置代码
        faultPositionCode: null,
        // 故障症状名称
        faultSymptomName: null,
        // 故障原因名称
        faultReasonName: null,
        // 分包类型（可能是指维修工作中是否涉及到了分包给其他公司或个人的情况）
        subletType: null,
        // 返回次数（可能是指备件或车辆因故障被返回的次数）
        returnTimes: null,
        // 故障描述，是原表中的俄文
        faultDescription: null,
        //故障描述，是人工翻译的中文
        faultDescriptionChinese: null,
        // 处理结果，是原表中的俄文
        disposalResult: null,
        // 处理结果，人工翻译的中文
        disposalResultChinese: null,
        // 备注
        remarks: null,
        // 工时费
        laborCost: null,
        // 零件费
        partCost: null,
        // 零件补偿费（可能是指因质量问题而给予的补偿）
        partCompensationCost: null,
        // 工时奖励金额（这个字段可能有误，通常不这样表述，可能是指某种奖励或补贴）
        rewardAmountOfLabor: null,
        // 外包费用
        outsourcingCost: null,
        // 申请金额
        appliedAmount: null,
        // 索赔追踪金额（可能是指用于追踪索赔进度的资金）
        claimTracingAmount: null,
        // 申请日期
        applicationDate: null,
        // 创建人
        creator: null,
        // 审核人
        reviewer: null,
        // 审核日期
        reviewDate: null,
        // 首次审核日期
        firstReviewDate: null,
        //是否考核
        isExam:'否',
        // IPTV3
        iPTV3:'',
        //IPTV6
        iPTV6:'',
        //IPTV12
        iPTV12:'',
        //IPTV24
        iPTV24:'',
        //IPTV36
        iPTV36:'',
        //零部件名称
        partName:'',
        //供应商名称
        supplierName:'',
        //调查结论，主要用作原因归类用的
        investigate:'',
        //是否需要调返故障件
        isBack:'',
        //调返提出人
        backName:'',
        //调返提出时间
        backProposeDate:'',
        //调返到发动机车间时间
        backRUSEngineDate:'',
        //调返到发动机车间交接人
        backRUSEngineName:'',
        //是否返回国内
        isBackChina:'',
        //返回国内时间
        backCNDate:'',
        //返回国内接收人
        backCNName:'',
      },
      //售后市场索赔单号的点击
      warrantyClaimDoe:0,
      //售后市场索赔单号的Scope格式
      warrantyClaimScope:null,
      //通过索赔单，新增问题的表单函数
      problemWarrantyFrom:{
        id:null,//主键
        establishTime:'11',//创建时间
        updateTime:'11',//修改时间
        deleteSign:'11',//删除标记
        editName:'',//编辑人
        workshop: '',// 车间名称
        lineName:'',//线体名称
        drawing: '', //产品图号,含产品名称
        op: '',//工序号
        occurDate: '',//发生日期
        noteTaker: '',//记录人
        liability: '',//责任人
        liabilityNub: '',//责任人工号
        problemName: '',//问题名称
        describeUse: '',//问题描述
        describeAnnex:'',//问题描述的图片附件
        quantity: 1,//问题数量
        introspection: '',//反思
        statusUse: '',//现状调查
        //发生源
        origin: '',
        //流出源
        outflow: '',
        //临时措施
        temporaryUse: '',
        //长远措施
        permanent: '',
        //纠正
        correct: '',
        //切换发动机/零部件号日期
        switchDate: '',
        //切换发动机号/零部件号
        switchNumber: '',
        //“纠正”的完成时间
        correctDate: '',
        //"纠正的"负责人
        correctLiability: '',
        //“临时措施”的完成时间
        temporaryDate: '',
        //"临时措施"的负责人
        temporaryLiability: '',
        //“长远措施”的完成时间
        permanentDate: '',
        //"长远措施"的负责人
        permanentLiability: '',
        //“不足反省”的完成时间
        introspectionDate: '',
        //"不足反省"的负责人
        introspectionLiability: '',
        //结论先行
        conclusion: '',
        //结题状态标签
        finish: '否',
        //记录是否需要汇报
        report: '',
        //大的分类的
        type1: '',
        //小分类
        type2: '',
        //编制人
        writeName:'',
        //审核
        examineName:'',
        //批准
        approveName:'',
        //责任方
        liabilityName:'',
        //是否索赔
        isIndemnify:'',
        //是否完成索赔
        isEndIndemnify:'',
        //供应商名称
        supplierName:'',
        //关联板块名:"机"
        machinePlateName:'',
        //关联板块id；“机”
        machinePlateId:'',
        //关联板块名:"人"
        peoplePlateName:'',
        //关联板块id；“人”
        peoplePlateId:'',
        //关联板块名："料“
        materialPlateName:'',
        //关联板id：’料‘
        materialPlateId:'',
        //关联板块名：’法‘
        methodPlateName:'',
        //关联板块id；“法”
        methodPlateId:'',
        //关联板块名：’环‘
        environmentPlateName:'',
        //关联板块id；“环”
        environmentPlateId:'',
        //关联板块名：’测‘
        measurePlateName:'',
        //关联板块id；“测”
        measurePlateId:'',
        //是否考核
        isExam:'否',
        //销售日期
        saleDate:'',
        //行驶里程
        mileage:'',
        //经销商代码（服务站名称）
        serviceId:'',
        //发动机号或零部件名称
        partName:'',
        //调查结论，主要用作原因归类用的
        investigate:'',
        //是否需要调返故障件
        isBack:'',
        //调返提出人
        backName:'',
        //调返提出时间
        backProposeDate:'',
        //调返到发动机车间时间
        backRUSEngineDate:'',
        //调返到发动机车间交接人
        backRUSEngineName:'',
        //是否返回国内
        isBackChina:'',
        //返回国内时间
        backCNDate:'',
        //返回国内接收人
        backCNName:'',
      },

      //工程内不良品单大表,新增不走这里，这里就是关联问题，可以走到低代码部分
      noGoodPartAssData:[{
        id: null,
        create_time: '', // 默认当前时间
        update_time: '', // 默认当前时间
        creator: '',
        process_status: '',
        sys_update_user: '',
        sys_audit_user: '',
        sys_audit_time: '',
        sys_deleted: 0, // 默认未删除
        fscs: '',//发生场所
        fdjxh: '',//发动机型号
        cpxh: '',//产品型号
        Lbjmc: '',//零部件名称
        Sccj: '',//生产厂家
        Qxms: '',//缺陷描述
        Sl: 0, // 数量，默认数量为0
        Bflx: '',//报废类型
        Bh: '',//编号
        czd: '',//处置单
        Lbjmc_E: '',//零部件名称-英文
        Lbjmc_R: '',//零部件名称-俄文
      }],
      //用在需要显示不良品表的地方，不影响主表的操作
      noGoodPartAssDataShow:[{
        id: null,
        create_time: '', // 默认当前时间
        update_time: '', // 默认当前时间
        creator: '',
        process_status: '',
        sys_update_user: '',
        sys_audit_user: '',
        sys_audit_time: '',
        sys_deleted: 0, // 默认未删除
        fscs: '',//发生场所
        fdjxh: '',//发动机型号
        cpxh: '',//产品型号
        Lbjmc: '',//零部件名称
        Sccj: '',//生产厂家
        Qxms: '',//缺陷描述
        Sl: 0, // 数量，默认数量为0
        Bflx: '',//报废类型
        Bh: '',//编号
        czd: '',//处置单
        Lbjmc_E: '',//零部件名称-英文
        Lbjmc_R: '',//零部件名称-俄文
      }],
      //工程内不良品单的表单函数
      noGoodPatAssFrom:{
        id: null,
        create_time: '', // 默认当前时间
        update_time: '', // 默认当前时间
        creator: '',
        process_status: '',
        sys_update_user: '',
        sys_audit_user: '',
        sys_audit_time: '',
        sys_deleted: 0, // 默认未删除
        fscs: '',//发生场所
        fdjxh: '',//发动机型号
        cpxh: '',//产品型号
        Lbjmc: '',//零部件名称
        Sccj: '',//生产厂家
        Qxms: '',//缺陷描述
        Sl: 0, // 数量，默认数量为0
        Bflx: '',//报废类型
        Bh: '',//编号
        czd: '',//处置单
        Lbjmc_E: '',//零部件名称-英文
        Lbjmc_R: '',//零部件名称-俄文
      },
      //对工程内不良品单的问题操作类型：1.新增问题；2.关联已有问题；
      noGoodPatAssDoe:0,
      //对工程内不良品单的Scope格式；
      noGoodPatAssScope:null,
      //零公里清单大表，实际记录的不是零公里，而是所有环节的问题，是在正常表中查不到的。
      zeroKilometersData:[
        {
          id:null,//主键
          establishTime:'',//创建时间
          updateTime:'',//修改时间
          deleteSign:'',//删除标记
          editName:'',//编辑人

          //发生日期
          occurDate: '',
          //机型
          engineType:'',
          //发动机号
          engineNo:'',
          //问题描述
          describeUse: '',
          //零部件名称
          partName:'',
          //问题数量
          quantity: 1,
          //详细信息
          detailed:'',
          //生产场地
          placeProduction:'',
          //记录是那个环节的问题
          typeUse:'',
          //记录这个问题关联类型：‘新增’，代表它是新增加的一个问题；‘关联’，是指以前已经有了，关联过去的。
          problemType:'',
          //记录问题的id
          problemId:'',
          //记录行驶里程
          mileage:'',
          //分析进展
          investigate:'',
        }
      ],
      //零公里清单的表单
      zeroKilometersFrom:{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人
        //发生日期
        occurDate: '',
        //机型
        engineType:'',
        //发动机号
        engineNo:'',
        //问题描述
        describeUse: '',
        //零部件名称
        partName:'',
        //问题数量
        quantity: 1,
        //详细信息
        detailed:'',
        //生产场地
        placeProduction:'',
        //责任方
        responsibleParty:'',
        //是否考核
        isExam:'',
        //记录是那个环节的问题
        typeUse:'',
        //记录这个问题关联类型：‘新增’，代表它是新增加的一个问题；‘关联’，是指以前已经有了，关联过去的。
        problemType:'',
        //记录问题的id
        problemId:'',
        //记录行驶里程
        mileage:'',
        //分析进展
        investigate:'',
      },
      //零部件清单的操作类型
      zeroKilometersDoe:0,
      //零部件清单的Scope格式
      zeroKilometersScope:null,
      //零公里大表的显示函数，用在了查看0公里关联问题中
      zeroKilometersDataShow:[],
      //选择器，选择多个月
      selectMoon:'',
      //多选框
      problemSelectList:['全部'],
      //在工程内的选择器的变量
      inCompanyOptionVal:['质量工废'],
      //在工程内的选择器的选择
      inCompanyOptions:[
        {label:'全部',value:'全部'},
        {label:'质量工废',value:'质量工废'},
        {label:'整车返回报废',value:'整车返回报废'},
        {label:'来料报废',value:'来料报废'},
        {label:'连带工废',value:'连带工废'},
        {label:'工艺工废',value:'工艺工废'},
        {label:'退物流置换',value:'退物流置换'},
        {label:'料废（退供应商）',value:'料废（退供应商）'},
      ],
      //在工程内的选择器，选择责任的
      inCompanyLiabilityOptions:[
        {label:'转储问题',value:'转储问题'},
        {label:'国内供方问题',value:'国内供方问题'},
        {label:'本地供方问题',value:'本地供方问题'},
        {label:'俄动力问题',value:'俄动力问题'},
        {label:'整车问题',value:'整车问题'},
      ],
      //机型类型
      engineTypeOptions:[
        {label:'EB05',value:'EB05'},
        {label:'EB35',value:'EB35'},
        {label:'EB75',value:'EB75'},
        {label:'EN19',value:'EN19'},
        {label:'EN38',value:'EN38'},
      ],
      engineTypeBigOptions:[
        {label:'EB',value:'EB'},
        {label:'EN',value:'EN'},
      ],
      //用在了选择年份的选择器
      yearOptions:[
        {label:'2025',value:'2025'},
        {label:'2026',value:'2026'},
      ],
      //用在了选择月份的选择器
      moonOptions:[
        {label:'01',value:'01'},
        {label:'02',value:'02'},
        {label:'03',value:'03'},
        {label:'04',value:'04'},
        {label:'05',value:'05'},
        {label:'06',value:'06'},
        {label:'07',value:'07'},
        {label:'08',value:'08'},
        {label:'09',value:'09'},
        {label:'10',value:'10'},
        {label:'11',value:'11'},
        {label:'12',value:'12'},
      ],
      //指标名称的选择器
      targetNameOptions:[
        {label:'零公里',value:'零公里'},
        {label:'IPTV3',value:'IPTV3'},
        {label:'IPTV6',value:'IPTV6'},
        {label:'IPTV12',value:'IPTV12'},
        {label:'IPTV24',value:'IPTV24'},
        {label:'IPTV36',value:'IPTV36'},
        {label:'内损',value:'内损'},
      ],
      //选择的年份（用在了IPTV报告）
      yearSelect:'2025',
      //选择的月份（用在了IPTV报告）
      moonSelect:'',
      //关联问题的弹窗中，选择问题
      selectProblemType:[],
      //IPTV报告的数据模版
      iptvReportData:[
        {
          id:null,//主键
          establishTime:'',//创建时间
          updateTime:'',//修改时间
          deleteSign:'',//删除标记
          editName:'',//编辑人

          //指标类型
          indicatorType:'',
          //统计年份
          yearData:'',
          //统计月份
          moonDate:'',
          //机型
          engineType:'',
          //统计指标名称
          targetName:'',
          //年度目标
          yearTargetVal:'',
          //本月度发生数量
          moonNumber:'',
          //本月样本量
          moonSample:'',
          //月度目标
          moonTargetVal:'',
          //月度达成
          moonAchieve:'',
          //累计目标值
          addUpTargetVal:'',
          //累计达成值
          addUpAchieve:'',
          //月度达成比例
          moonAchieveRatio:'',
          //年度达成比例
          yearAchieveRatio:'',
          //是否达成
          isAchieve:'',
          //达成趋势
          achieveTrend:'',
          //关联考核问题
          examNumb:'',
          //总结信息
          information:'',
        }
      ],
      //IPTV报告的数据模版的显示备用，作为筛选的
      iptvReportDataShow:[],
      //IPTV报告的数据的表单格式
      iptvReportFrom:{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人

        //指标类型
        indicatorType:'',
        //统计年份
        yearData:'',
        //统计月份
        moonDate:'',
        //机型
        engineType:'',
        //统计指标名称
        targetName:'',
        //年度目标
        yearTargetVal:'',
        //本月度发生数量
        moonNumber:'',
        //本月样本量
        moonSample:'',
        //月度目标
        moonTargetVal:'',
        //月度达成
        moonAchieve:'',
        //累计目标值
        addUpTargetVal:'',
        //累计达成值
        addUpAchieve:'',
        //月度达成比例
        moonAchieveRatio:'',
        //年度达成比例
        yearAchieveRatio:'',
        //是否达成
        isAchieve:'',
        //达成趋势
        achieveTrend:'',
        //关联考核问题
        examNumb:'',
        //总结信息
        information:'',
      },
      //IPTV报告的Scope格式
      iptvReportScope:null,
      //IPTV报告的编辑类型
      iptvReportDoe:0,
      //IPTV报告中显示，0公里的数据
      zeroKilometer:[{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人

        //指标类型
        indicatorType:'',
        //统计年份
        yearData:'',
        //统计月份
        moonDate:'',
        //机型
        engineType:'',
        //统计指标名称
        targetName:'',
        //年度目标
        yearTargetVal:'',
        //本月度发生数量
        moonNumber:'',
        //本月样本量
        moonSample:'',
        //月度目标
        moonTargetVal:'',
        //月度达成
        moonAchieve:'',
        //累计目标值
        addUpTargetVal:'',
        //累计达成值
        addUpAchieve:'',
        //月度达成比例
        moonAchieveRatio:'',
        //年度达成比例
        yearAchieveRatio:'',
        //是否达成
        isAchieve:'',
        //达成趋势
        achieveTrend:'',
        //关联考核问题
        examNumb:'',
        //总结信息
        information:'',
        //问题汇报的内容，是从问题中，把项目调出来，组合而成
        problemData:[{
          id:null,//主键
          establishTime:'11',//创建时间
          updateTime:'11',//修改时间
          deleteSign:'11',//删除标记
          editName:'',//编辑人
          workshop: '',// 车间名称
          lineName:'',//线体名称
          drawing: '', //产品图号,含产品名称
          op: '',//工序号
          occurDate: '',//发生日期
          noteTaker: '',//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',
          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',
          //供应商名称
          supplierName:'',
          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam:'否',
          //销售日期
          saleDate:'',
          //行驶里程
          mileage:'',
          //经销商代码（服务站名称）
          serviceId:'',
          //发动机号或零部件名称
          partName:'',
        }],
      }],
      //IPTV报告中显示，IPTV3的问题
      iptv3ReportData:[{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人

        //指标类型
        indicatorType:'',
        //统计年份
        yearData:'',
        //统计月份
        moonDate:'',
        //机型
        engineType:'',
        //统计指标名称
        targetName:'',
        //年度目标
        yearTargetVal:'',
        //本月度发生数量
        moonNumber:'',
        //本月样本量
        moonSample:'',
        //月度目标
        moonTargetVal:'',
        //月度达成
        moonAchieve:'',
        //累计目标值
        addUpTargetVal:'',
        //累计达成值
        addUpAchieve:'',
        //月度达成比例
        moonAchieveRatio:'',
        //年度达成比例
        yearAchieveRatio:'',
        //是否达成
        isAchieve:'',
        //达成趋势
        achieveTrend:'',
        //关联考核问题
        examNumb:'',
        //总结信息
        information:'',
        //问题汇报的内容，是从问题中，把项目调出来，组合而成
        problemData:[{
          id:null,//主键
          establishTime:'11',//创建时间
          updateTime:'11',//修改时间
          deleteSign:'11',//删除标记
          editName:'',//编辑人
          workshop: '',// 车间名称
          lineName:'',//线体名称
          drawing: '', //产品图号,含产品名称
          op: '',//工序号
          occurDate: '',//发生日期
          noteTaker: '',//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',
          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',
          //供应商名称
          supplierName:'',
          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam:'否',
          //销售日期
          saleDate:'',
          //行驶里程
          mileage:'',
          //经销商代码（服务站名称）
          serviceId:'',
          //发动机号或零部件名称
          partName:'',
        }],
      }],
      //IPTV报告中显示，IPTV12的问题
      iptv12ReportData:[{
        id:null,//主键
        establishTime:'',//创建时间
        updateTime:'',//修改时间
        deleteSign:'',//删除标记
        editName:'',//编辑人

        //指标类型
        indicatorType:'',
        //统计年份
        yearData:'',
        //统计月份
        moonDate:'',
        //机型
        engineType:'',
        //统计指标名称
        targetName:'',
        //年度目标
        yearTargetVal:'',
        //本月度发生数量
        moonNumber:'',
        //本月样本量
        moonSample:'',
        //月度目标
        moonTargetVal:'',
        //月度达成
        moonAchieve:'',
        //累计目标值
        addUpTargetVal:'',
        //累计达成值
        addUpAchieve:'',
        //月度达成比例
        moonAchieveRatio:'',
        //年度达成比例
        yearAchieveRatio:'',
        //是否达成
        isAchieve:'',
        //达成趋势
        achieveTrend:'',
        //关联考核问题
        examNumb:'',
        //总结信息
        information:'',
        //问题汇报的内容，是从问题中，把项目调出来，组合而成
        problemData:[{
          id:null,//主键
          establishTime:'11',//创建时间
          updateTime:'11',//修改时间
          deleteSign:'11',//删除标记
          editName:'',//编辑人
          workshop: '',// 车间名称
          lineName:'',//线体名称
          drawing: '', //产品图号,含产品名称
          op: '',//工序号
          occurDate: '',//发生日期
          noteTaker: '',//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',
          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',
          //供应商名称
          supplierName:'',
          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam:'否',
          //销售日期
          saleDate:'',
          //行驶里程
          mileage:'',
          //经销商代码（服务站名称）
          serviceId:'',
          //发动机号或零部件名称
          partName:'',
        }],
      }],
      //根据发动机号筛选数据的，用在了市场问题上
      engineNoSelect:'',
      //根据零部件名称进行筛选，用在了市场问题上
      drawingSelect:'',
      //多维度图用到的变量：
      //用在用户选择月份范围的变量，单独用在了多维度
      valueSelectMoonDimension:[],
      //记录零部件名称
      partName:'',
      //筛选多项IPTV的关联数据
      iptvReportProblemRelation:[],
      //编辑一个文本的类型
      textTypeUse:0,
      //数据加载控制的逻辑数，作为页面等待数据完成后再渲染
      isDataZeroKilometer: false,//IPTV报告中，0公里报告的数据汇报项目加载

      //画图表相关的参数
      //月度达成趋势图(EB零公里）
      moonAchieveChartEB:null,
      //月度达成趋势图用到的数据(EB零公里）
      moonAchieveChartEBOption: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //月度达成趋势图(EN零公里）
      moonAchieveChartEN:null,
      //月度达成趋势图用到的数据(EN零公里）
      moonAchieveChartENOption: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //月度达成趋势图(EB-IPTV3）
      moonAchieveChartEBIptv3:null,
      //月度达成趋势图用到的数据(EB-IPTV3）
      moonAchieveChartEBOptionIptv3: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //月度达成趋势图(EB-IPTV3）
      moonAchieveChartENIptv3:null,
      //月度达成趋势图用到的数据(EB-IPTV3）
      moonAchieveChartENOptionIptv3: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //月度达成趋势图(EB-IPTV12）
      moonAchieveChartEBIptv12:null,
      //月度达成趋势图用到的数据(EB-IPTV12）
      moonAchieveChartEBOptionIptv12: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //月度达成趋势图(EB-IPTV12）
      moonAchieveChartENIptv12:null,
      //月度达成趋势图用到的数据(EB-IPTV12）
      moonAchieveChartENOptionIptv12: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN月度趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //年度达成趋势图(EB零公里）
      yearAchieveChartEB:null,
      //年度达成趋势图用到的数据(EB零公里）
      yearAchieveChartEBOption: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //年度达成趋势图(EN零公里）
      yearAchieveChartEN:null,
      //年度达成趋势图用到的数据(EN零公里）
      yearAchieveChartENOption: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //年度达成趋势图(EB-IPTV3）
      yearAchieveChartEBIptv3:null,
      //年度达成趋势图用到的数据(EB-IPTV3）
      yearAchieveChartEBOptionIptv3: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //年度达成趋势图(EB-IPTV3）
      yearAchieveChartENIptv3:null,
      //年度达成趋势图用到的数据(EB-IPTV3）
      yearAchieveChartENOptionIptv3: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //年度达成趋势图(EB-IPTV12）
      yearAchieveChartEBIptv12:null,
      //年度达成趋势图用到的数据(EB-IPTV12）
      yearAchieveChartEBOptionIptv12: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EB累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //年度达成趋势图(EB-IPTV12）
      yearAchieveChartENIptv12:null,
      //年度达成趋势图用到的数据(EB-IPTV12）
      yearAchieveChartENOptionIptv12: {
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: 'EN累计趋势图(PPM)'
        },
        xAxis: {
          type: 'category',
          data: ['1月', '2月', '3月', '4月', '5月', '6月',
            '7月', '8月', '9月', '10月', '11月', '12月'],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 0,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '目标值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#FF4D4F'
            },
            lineStyle: {
              width: 2
            }
          },
          {
            name: '达成值',
            type: 'line',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['目标值', '达成值'],
          left: 'right', // 水平居中
          top: '45%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },

      //按照月度统计故障数量的图表
      moonFaultsNumber:null,
      moonFaultsNumberOption:{
        title: {
          textStyle: {
            color: '#333',
            fontSize: 14
          },
          x: 'center',
          text: '月度故障数量趋势图'
        },
        xAxis: {
          type: 'category',
          data: [],
          axisLabel: {
            rotate: 45,
            fontSize: 9 // 添加字体大小设置
          }
        },
        yAxis: {
          type: 'value',
          min: 0,
          max: 50,
          axisLabel: {
            formatter: '{value}'
          }
        },
        series: [
          {
            name: '达成值',
            type: 'bar',
            data: [],
            itemStyle: {
              color: '#52C41A'
            },
            lineStyle: {
              width: 2,
              type: 'dashed'
            }
          }
        ],
        grid: {
          top: '6%',    // 为标题和图例留出空间
          left: '3%',
          right: '4%',
          bottom: '0%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#6a7985'
            }
          }
        },
        legend: {
          data: ['数量'],
          left: 'right', // 水平居中
          top: '0%',     // 垂直位置
          itemGap: 20,    // 图例项间距
          textStyle: {
            color: '#333',
            fontSize: 12
          }
        }
      },
      //对用户选择的月中的零部件数量进行画图表的图表
      moonParts:null,
      //用户选择的零部件，在选定的日期内，每个月出现的故障数量
      partMoonNumChart:null,

    }
  },
  watch: {
    'problemDataForm.workshop'(newVal){
      if (newVal==='装配车间/Assembly workshop/Цех сборки двигателей'){
        this.optionLineName=workshopAssembly
        this.op=opList
        this.disabledOp=false
        this.disabledLineName=false
      }
      else if (newVal==='机加车间/Machining workshop/Цех механической обработки'){
        this.optionLineName=machiningAssembly
        this.op=opList
        this.disabledOp=false
        this.disabledLineName=false
      }
      else if (newVal==='零公里/Haval engine questions/Производственные вопросы двигателей цех сборки'){
        this.optionLineName=[]
        this.op=[]
        this.problemDataForm.lineName=''
        this.problemDataForm.op=''
        this.disabledOp=true
        this.disabledLineName=true
      }
      else if (newVal==='市场问题/Market engine questions/Продажа новых двигателей напрямую с завода'){
        this.optionLineName=[]
        this.op=[]
        this.problemDataForm.lineName=''
        this.problemDataForm.op=''
        this.disabledOp=true
        this.disabledLineName=true
      }
    },
    'problemWarrantyFrom.workshop'(newVal){
      if (newVal==='装配车间/Assembly workshop/Цех сборки двигателей'){
        this.optionLineName=workshopAssemblyNew
        this.op=opList
      }
      else if (newVal==='机加车间/Machining workshop/Цех механической обработки'){
        this.optionLineName=machiningAssembly
        this.op=opList
      }
    },
    selectProblemType(newVal){
      if (newVal.length===1){
        this.inquiryProblemOneFindSeveralVal('materialPlateName',newVal[0],)
      }
      else if (newVal.length===2){
        this.inquiryProblemOneFindSeveralVal('materialPlateName',newVal[0],newVal[1])
      }
      else if (newVal.length===3){
        this.inquiryProblemOneFindSeveralVal('materialPlateName',newVal[0],newVal[1],newVal[2])
      }

    },
    association(newVal){
      if (newVal==='市场问题'){
        this.$request.post('/inquiryWarrantyClaimOneFiledSeveralProblemManagement',{
          filedName:'problemId',
          filedVal:String(this.problemDataForm.id)
        })
            .then(result=>{
              if (result.code === 401) {
                this.$router.push('UserLogin')
                alert("您未登录，请登录")
              } else {
                this.warrantyClaimDataShow=result.data
              }
            })
      }
      else if (newVal==='工程内问题'){
        //
      }
    },
    engineNoSelect(newVal){
      if (newVal==='' || newVal===null || newVal===undefined){
        this.inquiryWarrantyClaimAll()
      }
      else {
        this.warrantyClaimData = this.warrantyClaimDataShow.filter(item =>
            String(item.engineNo).includes(String(newVal)) // 双重转换确保类型一致
        )
      }
    },
    drawingSelect(newVal){
      if (newVal==='' || newVal===null || newVal===undefined){
        this.inquiryWarrantyClaimAll()
      }
      else {
        this.warrantyClaimData = this.warrantyClaimDataShow.filter(item =>
            String(item.mainPartCode).includes(String(newVal.split('/')[0])) // 双重转换确保类型一致
        )
      }
    },
    //用户选择现在年的时候
    // eslint-disable-next-line no-unused-vars
    yearSelect(newVal,oldVal){
      this.isDataZeroKilometer=false
      //筛选数据,零公里
      this.zeroKilometer=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='零公里')
      //筛选数据,IPTV3
      this.iptv3ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV3')
      //筛选数据,IPTV12
      this.iptv12ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV12')
      //组合零公里要汇报的数据
      for (let i = 0; i < this.zeroKilometer.length; i++) {
        //先把数据分割
        if (this.zeroKilometer[i].examNumb!=='' && this.zeroKilometer[i].examNumb!==null && this.zeroKilometer[i].examNumb!==undefined){
          let examNumbList=this.zeroKilometer[i].examNumb.split('/')
          //筛选数据，并组合成问题汇报的项目
          this.zeroKilometer[i].problemData=[]
          //记录筛选过的问题编号，如果已经查过了，就不查了
          let unList=[]
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找;
            this.inquiryOneFieldZeroKilometersInt('id',Number(examNumbList[j])).then(data => {
              if (data!=='' && data!==null && data!==undefined){
                if (data[0].problemId==='' || data[0].problemId===null || data[0].problemId===undefined){
                  this.$message.error('ID号为'+data[0].id+'的0公里记录，未做问题关联，请先关联')
                }
                else {
                  //到问题库中去查询问题,首先看看是不是已经查过了
                  if (!unList.includes(data[0].problemId)){
                    unList.push(data)
                    this.$request.post('inquiryProblemByIdProblemManagement',{
                      id:data[0].problemId,
                    })
                        .then(result=>{
                          if (result.code === 401) {
                            this.$router.push('UserLogin')
                            alert("您未登录，请登录")
                          } else {
                            if (result.data===null || result.data===undefined || result.data===''){
                              this.$message.error('问题已不存在')
                            } else {
                              this.zeroKilometer[i].problemData.push(result.data)
                            }
                          }
                        })
                  }
                }
              }
            }).catch(error => {
              this.$message.error('发生错误,联系管理员');
              console.log(error)});
          }
        }
      }
      //组合IPTV3的汇报数据
      for (let i = 0; i < this.iptv3ReportData.length; i++) {
        //先把数据分割
        if (this.iptv3ReportData[i].examNumb!=='' && this.iptv3ReportData[i].examNumb!==null && this.iptv3ReportData[i].examNumb!==undefined){
          let examNumbList=this.iptv3ReportData[i].examNumb.split('/')
          //筛选数据，并组合成问题汇报的项目
          this.iptv3ReportData[i].problemData=[]
          //记录需要查询的id，是在清单的表中用到的
          let idList=''
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找
            if (j===1){
              idList=examNumbList[j]
            }
            else {
              idList=idList+'/'+examNumbList[j]
            }
          }
          //去后端查询索赔单的数据
          this.inquiryWarrantyClaimOneFiledSeveralInt('id',idList).then(data => {
            if (data!=='' && data!==null && data!==undefined){
              //记录筛选过的问题编号，如果已经查过了，就不查了
              let unList=[]
              //到问题库中去查询问题
              for (let j = 0; j < data.length; j++) {
                if (data[j].problemId==='' || data[j].problemId===null || data[j].problemId===undefined){
                  this.$message.error('IPTV3中，ID号为'+data[j].id+'索赔单未关联问题，请关联')
                }
                else {
                  if (!unList.includes(data[j].problemId)){
                    unList.push(data[j].problemId)
                    this.$request.post('inquiryProblemByIdProblemManagement',{
                      id:data[j].problemId,
                    })
                        .then(result1=>{
                          if (result1.code === 401) {
                            this.$router.push('UserLogin')
                            alert("您未登录，请登录")
                          } else {
                            if (result1.data===null || result1.data===undefined || result1.data===''){
                              this.$message.error('问题已不存在')
                            } else {
                              this.iptv3ReportData[i].problemData.push(result1.data)
                            }
                          }
                        })
                  }
                }
              }
            }
          }).catch(error => {
            this.$message.error('发生错误,联系管理员');
            console.log(error)
          });
        }
      }
      //组合IPTV12的汇报数据
      for (let i = 0; i < this.iptv12ReportData.length; i++) {
        //先把数据分割
        if (this.iptv12ReportData[i].examNumb!=='' && this.iptv12ReportData[i].examNumb!==null && this.iptv12ReportData[i].examNumb!==undefined){
          let examNumbList=this.iptv12ReportData[i].examNumb.split('/')
          //筛选数据，并组合成问题汇报的项目
          this.iptv12ReportData[i].problemData=[]
          let idList=''
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找
            if (j===1){
              idList=examNumbList[j]
            }
            else {
              idList=idList+'/'+examNumbList[j]
            }
          }
          //去后端查询索赔单的数据
          this.inquiryWarrantyClaimOneFiledSeveralInt('id',idList).then(data => {
            if (data!=='' && data!==null && data!==undefined){
              //记录筛选过的问题编号，如果已经查过了，就不查了
              let unList=[]
              //到问题库中去查询问题
              for (let j = 0; j < data.length; j++) {
                if (data[j].problemId==='' || data[j].problemId===null || data[j].problemId===undefined){
                  this.$message.error('IPTV12中，ID号为'+data[j].id+'索赔单未关联问题，请关联')
                }else {
                  if (!unList.includes(data[j].problemId)){
                    unList.push(data[j].problemId)
                    this.$request.post('inquiryProblemByIdProblemManagement',{
                      id:data[j].problemId,
                    }).then(result1=>{
                      if (result1.code === 401) {
                        this.$router.push('UserLogin')
                        alert("您未登录，请登录")
                      }
                      else {
                        if (result1.data===null || result1.data===undefined || result1.data===''){
                          this.$message.error('问题已不存在')
                        } else {
                          this.iptv12ReportData[i].problemData.push(result1.data)
                        }
                      }
                    })
                  }
                }
              }
            }

          }).catch(error => {
            this.$message.error('发生错误,联系管理员');
            console.log(error)
          });
        }
      }
      //画趋势图

      //画EB的月度零公里达成趋势图


    },
    //用户选择现在的月的时候
    // eslint-disable-next-line no-unused-vars
    moonSelect(newVal,oldVal){
      //筛选数据,零公里
      this.zeroKilometer=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='零公里')
      this.zeroKilometer.sort((a,b)=>String(a.engineType).localeCompare(String(b.engineType)))
      //筛选数据,IPTV3
      this.iptv3ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV3')
      this.iptv3ReportData.sort((a,b)=>String(a.engineType).localeCompare(String(b.engineType)))
      //筛选数据,IPTV12
      this.iptv12ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV12')
      this.iptv12ReportData.sort((a,b)=>String(a.engineType).localeCompare(String(b.engineType)))
      //组合零公里要汇报的数据
      for (let i = 0; i < this.zeroKilometer.length; i++) {
        //先把数据分割
        if (this.zeroKilometer[i].examNumb!=='' && this.zeroKilometer[i].examNumb!==null && this.zeroKilometer[i].examNumb!==undefined){
          let examNumbList=this.zeroKilometer[i].examNumb.split('/')
          // 去重
          examNumbList = examNumbList.filter((item, index) => {
            return examNumbList.indexOf(item) === index;
          });
          //筛选数据，并组合成问题汇报的项目
          this.zeroKilometer[i].problemData=[]
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找
            this.inquiryOneFieldZeroKilometersInt('id',Number(examNumbList[j])).then(data => {
              if (data!=='' && data!==null && data!==undefined){
                //到问题库中去查询问题
                if (data[0].problemId==='' || data[0].problemId===null || data[0].problemId===undefined){
                  this.$message.error('ID号为'+data[0].id+'的0公里记录，未做问题关联，请先关联')
                }
                else {
                  this.$request.post('inquiryProblemByIdProblemManagement',{
                    id:data[0].problemId,
                  })
                      .then(result=>{
                        if (result.code === 401) {
                          this.$router.push('UserLogin')
                          alert("您未登录，请登录")
                        } else {
                          if (result.data===null || result.data===undefined || result.data===''){
                            this.$message.error('问题已不存在')
                          } else {
                            this.zeroKilometer[i].problemData.push(result.data)
                          }
                        }
                      }).finally(()=>{
                    this.isDataZeroKilometer=true
                  })
                }
              }
            }).catch(error => {
              this.$message.error('发生错误,联系管理员');
              console.log(error)});
          }
        }
      }
      //组合IPTV3的汇报数据
      for (let i = 0; i < this.iptv3ReportData.length; i++) {
        //先把数据分割
        if (this.iptv3ReportData[i].examNumb!=='' && this.iptv3ReportData[i].examNumb!==null && this.iptv3ReportData[i].examNumb!==undefined){
          let examNumbList=this.iptv3ReportData[i].examNumb.split('/')
          // 去重
          examNumbList = examNumbList.filter((item, index) => {
            return examNumbList.indexOf(item) === index;
          });
          //筛选数据，并组合成问题汇报的项目
          this.iptv3ReportData[i].problemData=[]
          let idList=''
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找
            if (j===1){
              idList=examNumbList[j]
            }
            else {
              idList=idList+'/'+examNumbList[j]
            }
          }
          //去后端查询索赔单的数据
          this.inquiryWarrantyClaimOneFiledSeveralInt('id',idList).then(data => {
            if (data!=='' && data!==null && data!==undefined){
              //到问题库中去查询问题
              for (let j = 0; j < data.length; j++) {
                if (data[j].problemId==='' || data[j].problemId===null || data[j].problemId===undefined){
                  this.$message.error('IPTV3中，ID号为'+data[j].id+'索赔单未关联问题，请关联')
                }
                else {
                  this.$request.post('inquiryProblemByIdProblemManagement',{
                    id:data[j].problemId,
                  })
                      .then(result1=>{
                        if (result1.code === 401) {
                          this.$router.push('UserLogin')
                          alert("您未登录，请登录")
                        } else {
                          if (result1.data===null || result1.data===undefined || result1.data===''){
                            this.$message.error('问题已不存在')
                          } else {
                            this.iptv3ReportData[i].problemData.push(result1.data)
                          }
                        }
                      })
                }
              }
            }
          }).catch(error => {
            this.$message.error('发生错误,联系管理员');
            console.log(error)
          });
        }
      }
      //组合IPTV12的汇报数据
      for (let i = 0; i < this.iptv12ReportData.length; i++) {
        //先把数据分割
        if (this.iptv12ReportData[i].examNumb!=='' && this.iptv12ReportData[i].examNumb!==null && this.iptv12ReportData[i].examNumb!==undefined){
          let examNumbList=this.iptv12ReportData[i].examNumb.split('/')
          // 去重
          examNumbList = examNumbList.filter((item, index) => {
            return examNumbList.indexOf(item) === index;
          });
          //筛选数据，并组合成问题汇报的项目
          this.iptv12ReportData[i].problemData=[]
          let idList=''
          for (let j = 1; j < examNumbList.length; j++) {
            //首先去查询问题,0公里问题全部从zero_kilometer_data中找
            if (j===1){
              idList=examNumbList[j]
            }
            else {
              idList=idList+'/'+examNumbList[j]
            }
          }
          //去后端查询索赔单的数据
          this.inquiryWarrantyClaimOneFiledSeveralInt('id',idList).then(data => {
            if (data!=='' && data!==null && data!==undefined){
              //到问题库中去查询问题
              for (let j = 0; j < data.length; j++) {
                if (data[j].problemId==='' || data[j].problemId===null || data[j].problemId===undefined){
                  this.$message.error('IPTV12中，ID号为'+data[j].id+'索赔单未关联问题，请关联')
                }else {
                  this.$request.post('inquiryProblemByIdProblemManagement',{
                    id:data[j].problemId,
                  }).then(result1=>{
                    if (result1.code === 401) {
                      this.$router.push('UserLogin')
                      alert("您未登录，请登录")
                    }
                    else {
                      if (result1.data===null || result1.data===undefined || result1.data===''){
                        this.$message.error('问题已不存在')
                      } else {
                        this.iptv12ReportData[i].problemData.push(result1.data)
                      }
                    }
                  })
                }
              }
            }

          }).catch(error => {
            this.$message.error('发生错误,联系管理员');
            console.log(error)
          });
        }
      }
    },
    //记录用户选择的是那个月：用在了多维度分析上
    // eslint-disable-next-line no-unused-vars
    valueMoon(newVal,oldVal){
      const moonS = this.generateNextMonthDates(newVal)
      //向后端筛选数据，筛选出当月所有的故障信息
      //向后端筛选数据
      this.inquiryWarrantyClaimOneFiledScopeStr('repairCompletedDate',moonS[0],moonS[1]).then(data=>{
        //对数据进行组合，进行画月度故障多维度图
        //统计不同零部件出现的数量
        const countMap = data.reduce((acc, item) => {
          const code = item.mainPartCode;
          if (code !== null && code !== undefined) {
            acc[code] = (acc[code] || 0) + 1;
          }
          return acc;
        }, {});

        const result = Object.entries(countMap)
            .map(([mainLaborCodeVal, mainLaborCodeNub]) => ({
              mainLaborCodeVal,
              mainLaborCodeNub
            }))
            .sort((a, b) => b.mainLaborCodeNub - a.mainLaborCodeNub);
        //创建图像变量
        let moonParts={
          title: {
            textStyle: {
              color: '#333',
              fontSize: 14
            },
            x: 'center',
            text: '零部件障数量趋势图'
          },
          xAxis: {
            type: 'category',
            data: [],
            axisLabel: {
              rotate: 45,
              fontSize: 9 // 添加字体大小设置
            }
          },
          yAxis: {
            type: 'value',
            min: 0,
            max: 50,
            axisLabel: {
              formatter: '{value}'
            }
          },
          series: [
            {
              name: '故障数量',
              type: 'bar',
              data: [],
              itemStyle: {
                color: '#52C41A'
              },
              lineStyle: {
                width: 2,
                type: 'dashed'
              }
            }
          ],
          grid: {
            top: '6%',    // 为标题和图例留出空间
            left: '3%',
            right: '4%',
            bottom: '0%',
            containLabel: true
          },
          tooltip: {
            trigger: 'axis',
            axisPointer: {
              type: 'cross',
              label: {
                backgroundColor: '#6a7985'
              }
            }
          },
          legend: {
            data: ['数量'],
            left: 'right', // 水平居中
            top: '0%',     // 垂直位置
            itemGap: 20,    // 图例项间距
            textStyle: {
              color: '#333',
              fontSize: 12
            }
          }
        }
        //给图像变量赋值
        for (let i = 0; i < result.length; i++) {
          //纵坐标赋值
          moonParts.series[0].data.push(result[i].mainLaborCodeNub)
          //横坐标赋值
          moonParts.xAxis.data.push(result[i].mainLaborCodeVal)
        }
        //设置纵坐标最大值
        moonParts.yAxis.max=moonParts.series[0].data[0]

        this.$nextTick(() => {
          if (!this.moonParts) {
            this.moonParts = echarts.init(this.$refs.moonParts)
          }
          //画故障数量的趋势图
          this.moonParts.setOption(moonParts)
        })
      })
    },
    //记录用户要看什么时间段的信息：用在了多维度分析中的(故障数量、零部件分析）
    // eslint-disable-next-line no-unused-vars
    valueSelectMoonDimension(newVal,oldVal){
      //根据用户现在的数据，进行后端筛选，首先，如果用户就选择了一个月，就提示用户，无法形成单月的月度趋势对比
      if (newVal[0]===newVal[1]){
        this.$message.error('您只选择了一个月数据，单月无法形成月度对比')
      }
      else {
        //向后端筛选数据
        this.inquiryWarrantyClaimOneFiledScopeStr('repairCompletedDate',newVal[0],newVal[1]).then(data=>{
          //对数据进行组合，进行画月度故障多维度图
          //组合画月度故障数量的柱状数据赋值
          //数据清理:横轴的坐标
          this.moonFaultsNumberOption.series[0].data=[]
          this.moonFaultsNumberOption.xAxis.data=[]

          //找出那个零部件最多，给零部件，一年内的值进行画图
          const countMap = {};
          data.forEach(item => {
            const mainPartCode = item.mainPartCode;
            if (mainPartCode !== null && mainPartCode !== undefined) {
              countMap[mainPartCode] = (countMap[mainPartCode] || 0) + 1;
            }
          });

          // 找出出现次数最多的 mainPartCode
          let maxCount = 0;
          let mostFrequentMainPartCode = null;
          for (const [code, count] of Object.entries(countMap)) {
            if (count > maxCount) {
              maxCount = count;
              mostFrequentMainPartCode = code;
            }
          }
          const moonData = this.generateMonthRange(newVal[0],newVal[1])
          for (let i = 0; i < moonData.length-1; i++) {
            //筛选数据计算出每个月的数据
            const temp = data.filter(item=>{
              // 跳过无效日期字段
              if (!item.repairCompletedDate) return false;
              const date = item.repairCompletedDate;
              return date >= moonData[i] && date <= moonData[i+1];
            })
            //给Y轴的值进行赋值
            this.moonFaultsNumberOption.series[0].data.push(String(temp.length))
            //给X轴进行赋值
            this.moonFaultsNumberOption.xAxis.data.push(moonData[i].slice(0, 7))
          }
          //给Y轴的最大值赋值
          this.moonFaultsNumberOption.yAxis.max=maxCount+5
          //进行画图，画出这段时间的趋势图
          this.$nextTick(() => {
            if (!this.moonFaultsNumber) {
              this.moonFaultsNumber = echarts.init(this.$refs.moonFaultsNumber)
            }
            //画故障数量的趋势图
            this.moonFaultsNumber.setOption(this.moonFaultsNumberOption)
          })
          //如果是默认的零部件的话
          if (this.partName==='' || this.partName===null || this.partName===undefined){
            // 筛选出 mainPartCode 等于 mostFrequentMainPartCode 的数据，组成新数组
            const filteredDataMaxPart = data.filter(item => item.mainPartCode === mostFrequentMainPartCode);
            //建立一个变量，准备给图表准备数据
            let maxParts={
              title: {
                textStyle: {
                  color: '#333',
                  fontSize: 14
                },
                x: 'center',
                text: mostFrequentMainPartCode+'各月趋势图'
              },
              xAxis: {
                type: 'category',
                data: [],
                axisLabel: {
                  rotate: 45,
                  fontSize: 9 // 添加字体大小设置
                }
              },
              yAxis: {
                type: 'value',
                min: 0,
                max: maxCount,
                axisLabel: {
                  formatter: '{value}'
                }
              },
              series: [
                {
                  name: '故障数量',
                  type: 'bar',
                  data: [],
                  itemStyle: {
                    color: '#52C41A'
                  },
                  lineStyle: {
                    width: 2,
                    type: 'dashed'
                  }
                }
              ],
              grid: {
                top: '6%',    // 为标题和图例留出空间
                left: '3%',
                right: '4%',
                bottom: '0%',
                containLabel: true
              },
              tooltip: {
                trigger: 'axis',
                axisPointer: {
                  type: 'cross',
                  label: {
                    backgroundColor: '#6a7985'
                  }
                }
              },
              legend: {
                data: ['数量'],
                left: 'right', // 水平居中
                top: '0%',     // 垂直位置
                itemGap: 20,    // 图例项间距
                textStyle: {
                  color: '#333',
                  fontSize: 12
                }
              }
            }
            for (let i = 0; i < moonData.length-1; i++) {
              //筛选数据计算出每个月的数据
              const temp = filteredDataMaxPart.filter(item=>{
                // 跳过无效日期字段
                if (!item.repairCompletedDate) return false;
                const date = item.repairCompletedDate;
                return date >= moonData[i] && date <= moonData[i+1];
              })
              //给Y轴的值进行赋值
              maxParts.series[0].data.push(String(temp.length))
              //给X轴进行赋值
              maxParts.xAxis.data.push(moonData[i].slice(0, 7))
            }
            // 将字符串数组转换为数字数组
            const numberArray = maxParts.series[0].data.map(Number);
            //找到最大值
            // 使用 Math.max 和展开运算符找到最大值
            const maxValue = Math.max(...numberArray);
            maxParts.yAxis.max=maxValue+5
            //进行画图，画出这段时间的趋势图
            this.$nextTick(() => {
              if (!this.partMoonNumChart) {
                this.partMoonNumChart = echarts.init(this.$refs.partMoonNumChart)
              }
              //画故障数量的趋势图
              this.partMoonNumChart.setOption(maxParts)
            })
            //根据已有的零部件，筛选出零部件的图号、名称的值来
            const index = this.productModelListOption.map((item, index) => (item.value.includes(mostFrequentMainPartCode) ? index : -1)).filter(index => index !== -1)
            this.partName=this.productModelListOption[index].value
          }
        })
      }
    },
    //记录选择了不同的零部件后的变化
    // eslint-disable-next-line no-unused-vars
    partName(newVal,oldVal){
      if (this.valueSelectMoonDimension==='' || this.valueSelectMoonDimension===null || this.valueSelectMoonDimension===undefined){
        this.$message.error('未选择时间区间')
      }
      else if (this.valueSelectMoonDimension[0]===this.valueSelectMoonDimension[1]){
        this.$message.error('选择时间为一个月，无法形成趋势')
      }
      else {
        //到后端去选择数据
        //向后端筛选数据
        this.inquiryWarrantyClaimOneFiledScopeStr('repairCompletedDate',this.valueSelectMoonDimension[0],this.valueSelectMoonDimension[1]).then(data=>{
          //按照用户选择的零部件进行筛选
          const filteredDataMaxPart = data.filter(item => item.mainPartCode === newVal.split('/')[0]);
        //建立一个变量，准备给图表准备数据
          let maxParts={
            title: {
              textStyle: {
                color: '#333',
                fontSize: 14
              },
              x: 'center',
              text: newVal.split('/')[0]+'各月趋势图'
            },
            xAxis: {
              type: 'category',
              data: [],
              axisLabel: {
                rotate: 45,
                fontSize: 9 // 添加字体大小设置
              }
            },
            yAxis: {
              type: 'value',
              min: 0,
              max: 10,
              axisLabel: {
                formatter: '{value}'
              }
            },
            series: [
              {
                name: '故障数量',
                type: 'bar',
                data: [],
                itemStyle: {
                  color: '#52C41A'
                },
                lineStyle: {
                  width: 2,
                  type: 'dashed'
                }
              }
            ],
            grid: {
              top: '6%',    // 为标题和图例留出空间
              left: '3%',
              right: '4%',
              bottom: '0%',
              containLabel: true
            },
            tooltip: {
              trigger: 'axis',
              axisPointer: {
                type: 'cross',
                label: {
                  backgroundColor: '#6a7985'
                }
              }
            },
            legend: {
              data: ['数量'],
              left: 'right', // 水平居中
              top: '0%',     // 垂直位置
              itemGap: 20,    // 图例项间距
              textStyle: {
                color: '#333',
                fontSize: 12
              }
            }
          }
          const moonData = this.generateMonthRange(this.valueSelectMoonDimension[0],this.valueSelectMoonDimension[1])
          for (let i = 0; i < moonData.length-1; i++) {
            //筛选数据计算出每个月的数据
            const temp = filteredDataMaxPart.filter(item=>{
              // 跳过无效日期字段
              if (!item.repairCompletedDate) return false;
              const date = item.repairCompletedDate;
              return date >= moonData[i] && date <= moonData[i+1];
            })
            //给Y轴的值进行赋值
            maxParts.series[0].data.push(String(temp.length))
            //给X轴进行赋值
            maxParts.xAxis.data.push(moonData[i].slice(0, 7))
          }
          // 将字符串数组转换为数字数组
          const numberArray = maxParts.series[0].data.map(Number);
          //找到最大值
          // 使用 Math.max 和展开运算符找到最大值
          const maxValue = Math.max(...numberArray);
          maxParts.yAxis.max=maxValue+3
          //进行画图，画出这段时间的趋势图
          this.$nextTick(() => {
            if (!this.partMoonNumChart) {
              this.partMoonNumChart = echarts.init(this.$refs.partMoonNumChart)
            }
            //画故障数量的趋势图
            this.partMoonNumChart.setOption(maxParts)
          })
        })
      }
    }
  },
  methods: {
    //退出登录
    logOut(){
      localStorage.removeItem('u_token');
      localStorage.removeItem('userName')
      this.$router.push('UserLogin')
    },
    //通用，语言选择
    chooseLanguage(language){
      this.languageS=language
    },
    //查询用户信息的函数
    inquiry(){
      //输入用户编号，向后端查询信息
      const useId=localStorage.getItem('userName').replace(/"/g, '');
      this.$request.post('/useQueryPower',{
        queryFiledName:'problemManagement',
        userId:useId,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        }else {
          this.useName=result.data.name
          this.usePower=result.data.problemManagement
          this.useId=useId
        }
      })
    },
    // 通用，弹窗关闭的时候，无意关闭弹窗的函数
    handleClose(done) {
      this.$confirm('确认关闭？')
          // eslint-disable-next-line no-unused-vars
          .then(_ => {
            done();
          })
          // eslint-disable-next-line no-unused-vars
          .catch(_ => {});
    },
    //在tab控件上单击的函数
    // eslint-disable-next-line no-unused-vars
    handleClick(tab, event) {
      this.closeAll()
      if (this.activeName==='exception'){
        this.$nextTick(() => {
          // 如果需要对数据进行深拷贝来触发更新，可以考虑如下方式
          this.exceptionData = _.cloneDeep(this.exceptionData);
        })
      }
      //需要用户想看那些过程问题清单
      if (this.activeName==='zeroKilometers'){
        this.zeroKilometersData=[]
        if (this.buttonDoe===4){
          this.inquiryOneFieldZeroKilometers('typeUse','零公里')
        }
        else if (this.buttonDoe===5){
          this.inquiryOneFieldZeroKilometers('typeUse','市场问题')
        }
        else if (this.buttonDoe===6){
          this.inquiryOneFieldZeroKilometers('typeUse','工程内问题')
        }
      }
      //用户查看IPTV报告的函数
      else if (this.activeName==='IPTVReport'){
        //获得当前系统日期的年份、月份
        // 获取当前日期
        const currentDate = new Date();
        // 获取当前年份
        const year = currentDate.getFullYear();
        // 获取当前月份（注意：月份是从 0 开始的，所以需要加 1）
        const formattedmonth = currentDate.getMonth() + 1;
        // 格式化月份为两位数（例如：04）
        const month = formattedmonth < 10 ? '0' + formattedmonth : formattedmonth;
        this.yearSelect=year
        this.moonSelect=month
        //筛选数据，零公里
        this.zeroKilometer=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='零公里')
        //筛选数据，IPTV3
        this.iptv3ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV3')
        //筛选数据，IPTV12
        this.iptv12ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV12')
        //画趋势图
        this.initChart()
      }
      //用户产看多维度分析数据的时候
      else if (this.activeName==='analysisReport'){
        //给默认值日期进行赋值:是一年12个月的数据
        const currentDate = new Date(); // 当前日期
        const temp=this.generateDateRange(currentDate)
        this.valueSelectMoonDimension=[]
        this.valueSelectMoonDimension.push(temp[0])
        this.valueSelectMoonDimension.push(temp[temp.length-1])

        //获得当前月，并且设置选择的默认值，用在了画当前月出现的问题数量
        const year = currentDate.getFullYear();
        const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始，所以需要加 1
        const day = '01'; // 固定为 01
        //给选择的一个月赋值，然后在监视中，画出这个月的趋每个零部件的趋势图。
        this.valueMoon=`${year}-${month}-${day}`
      }
    },
    //选择主导航上的不同按钮
    buttonMainSelect(doe){
      this.problemData=[]
      this.buttonDoe=doe
      this.disabledLineName=true
      this.disabledOp=true
      this.op=[]
      this.optionLineName=[]
      //过程问题的清单筛选
      if (this.buttonDoe===4){
        this.inquiryOneFieldZeroKilometers('typeUse','零公里')
      }
      else if (this.buttonDoe===5){
        this.inquiryOneFieldZeroKilometers('typeUse','市场问题')
      }
      else if (this.buttonDoe===6){
        this.inquiryOneFieldZeroKilometers('typeUse','工程内')
      }

      if (doe===1){
        this.buttonBackColor1='blue'//按钮的背景颜色
        this.buttonColor1='white'//按钮的字体颜色
        this.buttonBackColor2=''//按钮的背景颜色
        this.buttonColor2=''//按钮的字体颜色
        this.buttonBackColor3=''//按钮的背景颜色
        this.buttonColor3=''//按钮的字体颜色
        this.buttonBackColor4=''//按钮的背景颜色
        this.buttonColor4=''//按钮的字体颜色
        this.buttonBackColor5=''//按钮的背景颜色
        this.buttonColor5=''//按钮的字体颜色
        this.buttonBackColor6=''//按钮的背景颜色
        this.buttonColor6=''//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色
      }
      if (doe===2){
        this.buttonBackColor1=''//按钮的背景颜色
        this.buttonColor1=''//按钮的字体颜色
        this.buttonBackColor2='blue'//按钮的背景颜色
        this.buttonColor2='white'//按钮的字体颜色
        this.buttonBackColor3=''//按钮的背景颜色
        this.buttonColor3=''//按钮的字体颜色
        this.buttonBackColor4=''//按钮的背景颜色
        this.buttonColor4=''//按钮的字体颜色
        this.buttonBackColor5=''//按钮的背景颜色
        this.buttonColor5=''//按钮的字体颜色
        this.buttonBackColor6=''//按钮的背景颜色
        this.buttonColor6=''//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色
      }
      if (doe===3){
        this.buttonBackColor1=''//按钮的背景颜色
        this.buttonColor1=''//按钮的字体颜色
        this.buttonBackColor2=''//按钮的背景颜色
        this.buttonColor2=''//按钮的字体颜色
        this.buttonBackColor3='blue'//按钮的背景颜色
        this.buttonColor3='white'//按钮的字体颜色
        this.buttonBackColor4=''//按钮的背景颜色
        this.buttonColor4=''//按钮的字体颜色
        this.buttonBackColor5=''//按钮的背景颜色
        this.buttonColor5=''//按钮的字体颜色
        this.buttonBackColor6=''//按钮的背景颜色
        this.buttonColor6=''//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色
      }
      if (doe===4){
        this.buttonBackColor1=''//按钮的背景颜色
        this.buttonColor1=''//按钮的字体颜色
        this.buttonBackColor2=''//按钮的背景颜色
        this.buttonColor2=''//按钮的字体颜色
        this.buttonBackColor3=''//按钮的背景颜色
        this.buttonColor3=''//按钮的字体颜色
        this.buttonBackColor4='blue'//按钮的背景颜色
        this.buttonColor4='white'//按钮的字体颜色
        this.buttonBackColor5=''//按钮的背景颜色
        this.buttonColor5=''//按钮的字体颜色
        this.buttonBackColor6=''//按钮的背景颜色
        this.buttonColor6=''//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色

        this.problemAddORSelect=false
        this.problemAddORSelect1=false
        this.problemAddORSelect2=!this.problemAddORSelect2

        this.inquiryProblemOneFindSeveralVal('materialPlateName','零公里',)
      }
      if (doe===5){
        this.buttonBackColor1=''//按钮的背景颜色
        this.buttonColor1=''//按钮的字体颜色
        this.buttonBackColor2=''//按钮的背景颜色
        this.buttonColor2=''//按钮的字体颜色
        this.buttonBackColor3=''//按钮的背景颜色
        this.buttonColor3=''//按钮的字体颜色
        this.buttonBackColor4=''//按钮的背景颜色
        this.buttonColor4=''//按钮的字体颜色
        this.buttonBackColor5='blue'//按钮的背景颜色
        this.buttonColor5='white'//按钮的字体颜色
        this.buttonBackColor6=''//按钮的背景颜色
        this.buttonColor6=''//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色
        this.problemAddORSelect=!this.problemAddORSelect
        this.problemAddORSelect1=false
        this.problemAddORSelect2=false

        this.inquiryProblemOneFindSeveralVal('materialPlateName','市场问题')

      }
      if (doe===6){
        this.buttonBackColor1=''//按钮的背景颜色
        this.buttonColor1=''//按钮的字体颜色
        this.buttonBackColor2=''//按钮的背景颜色
        this.buttonColor2=''//按钮的字体颜色
        this.buttonBackColor3=''//按钮的背景颜色
        this.buttonColor3=''//按钮的字体颜色
        this.buttonBackColor4=''//按钮的背景颜色
        this.buttonColor4=''//按钮的字体颜色
        this.buttonBackColor5=''//按钮的背景颜色
        this.buttonColor5=''//按钮的字体颜色
        this.buttonBackColor6='blue'//按钮的背景颜色
        this.buttonColor6='white'//按钮的字体颜色
        this.buttonBackColor7=''//按钮的背景颜色
        this.buttonColor7=''//按钮的字体颜色
        this.problemAddORSelect=false
        this.problemAddORSelect1=!this.problemAddORSelect1
        this.problemAddORSelect2=false
        this.inquiryProblemOneFindSeveralVal('materialPlateName','工程内问题')
      }
    },
    //点击问题查看，显示问题解决情况,弹出抽屉
    problemShow(scope){
      this.closeAll()
      //数据赋值
      this.problemDataScope=scope
      this.problemDataForm=scope.row
      this.problemSolvingDrawer=true

      //判定用户是否有权限结题或者
      if (this.usePower===1 || this.usePower==='1'){
        this.disabledIsReport=false
        this.disabledIsFinish=false
      }
      else {
        this.disabledIsReport=true
        this.disabledIsFinish=true
      }
      if (this.usePower===1 || this.usePower==='1' || this.usePower===3 || this.usePower==='3'){
        this.disabledIsExamine=false
      }
      else {
        this.disabledIsExamine=true
      }
    },
    //点击问题修改，修改问题的全部字段
    problemEditShow(scope,doe){
      this.problemDataScope=scope
      this.problemDataForm=_.cloneDeep(scope.row)
      this.problemAddShowDoe=doe
      //是要修改问题
      if(doe===100){
        this.titleUse='您正在修改问题基本信息'
        this.dialogVisibleAddP=true
      }
      //是要删除问题
      else if(doe===101){
        this.information='确定删除本项问题吗？'
        this.problemDeleteDialog=true
      }
    },
    //删除一项问题的函数
    problemDeleteOk(){
      //向后段修改删除的字段
      this.editOneFiledProblemInt('deleteSign',0,this.problemDataForm.id)
      //处理总表中的信息
      this.problemData.splice(this.problemDataScope.$index,1)
      //关闭窗口
      this.problemDeleteDialog=false
    },
    //编辑问题的函数集合,显示弹窗
    editProb(doe){
      //判断用户是否有权限，根据工号判定
      if (!this.problemDataForm.liabilityNub.toLowerCase().includes(this.useId.toLowerCase()) && this.usePower!==1){
        this.$message.error('您不是责任人，不能修改问题')
        return
      }
      this.problemDataDoe=doe
      //结论先行
      if (doe===1){
        //需要一个文本框的弹窗
        this.editProblemItem='结论先行：'
        this.editProblemText=this.problemDataForm.conclusion
        this.editProblemOneTextBigDialog=true
      }
      else if (doe===2){
        this.editProblemItem='问题描述：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.describeUse)
        })
      }
      else if (doe===3){
        this.editProblemItem='数量/次数：'
        this.inputNub=this.problemDataForm.quantity
        this.nmbDialog=true
      }
      else if (doe===4){
        this.editProblemItem='现状调查：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.statusUse)
        })
      }
      else if (doe===5){
        this.editProblemItem='发生源：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.origin)
        })
      }
      else if (doe===6){
        this.editProblemItem='流出源：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.outflow)
        })
      }
      else if (doe===7){
        this.editProblemItem='纠正措施：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.correct)
        })
      }
      else if (doe===8){
        this.editProblemItem='纠正措施完成时间：'
        this.valueDate=this.problemDataForm.switchDate
        this.dateDialog=true
      }
      else if (doe===9){
        this.editProblemItem='纠正措施负责人：'
        this.valueDate=this.problemDataForm.correctLiability
        this.nameDialog=true
      }
      else if (doe===10){
        this.editProblemItem='临时措施：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.temporaryUse)
        })
      }
      else if (doe===11){
        this.editProblemItem='临时措施完成时间：'
        this.valueDate=this.problemDataForm.temporaryDate
        this.dateDialog=true
      }
      else if (doe===12){
        this.editProblemItem='临时措施负责人：'
        this.valueDate=this.problemDataForm.temporaryLiability
        this.nameDialog=true
      }
      else if (doe===13){
        this.editProblemItem='长远措施：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.permanent)
        })
      }
      else if (doe===14){
        this.editProblemItem='长远措施完成时间：'
        this.valueDate=this.problemDataForm.permanentDate
        this.dateDialog=true
      }
      else if (doe===15){
        this.editProblemItem='临时措施负责人：'
        this.valueDate=this.problemDataForm.permanentLiability
        this.nameDialog=true
      }
      else if (doe===16){
        this.editProblemItem='不足反省：'
        this.fullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(this.problemDataForm.introspection)
        })
      }
      else if (doe===17){
        this.editProblemItem='不足反省完成时间：'
        this.valueDate=this.problemDataForm.introspectionDate
        this.dateDialog=true
      }
      else if (doe===18){
        this.editProblemItem='临时措施负责人：'
        this.valueDate=this.problemDataForm.introspectionLiability
        this.nameDialog=true
      }
      else if (doe===19){
        this.editProblemItem='切换时间：'
        this.valueDate=this.problemDataForm.switchDate
        this.dateDialog=true
      }
      else if (doe===20){
        this.editProblemItem='临时措施负责人：'
        this.valueDate=this.problemDataForm.switchNumber
        this.nameDialog=true
      }
      else if (doe===21){
        this.editProblemItem='是否汇报：'
        this.valueDate=this.problemDataForm.report
        this.yesDialog=true
      }
      else if (doe===22){
        this.editProblemItem='结题状态：'
        this.valueDate=this.problemDataForm.finish
        this.yesDialog=true
      }
      else if (doe===24){
        //是要审核
        this.information='确定完成审核吗？'
        this.dialogVisible=true
      }
      else if (doe===25){
        {
          //是要审核
          this.information='确定完成批准吗？'
          this.dialogVisible=true
        }
      }
      else if (doe===26){
        {
          //是要审核
          this.information='确定设置编制吗？'
          this.dialogVisible=true
        }
      }
    },
    //提交对问题库的更改
    editProblemOk(){
      //找到编辑数据的索引值
      const index = this.problemData.findIndex(item => item.id === this.problemDataForm.id);
      if (this.problemDataDoe===1){
        this.editOneFiledProblemStr('conclusion',this.editProblemText,this.problemDataForm.id)
        this.problemDataForm.conclusion=this.editProblemText
        this.problemData.splice(index,1,this.problemDataForm)
        this.editProblemOneTextBigDialog=false
      }
      else if (this.problemDataDoe===2){
        this.editOneFiledProblemStr('describeUse',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.describeUse=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===3){
        this.editOneFiledProblemInt('quantity',this.inputNub,this.problemDataForm.id)
        this.problemDataForm.quantity=this.inputNub
        this.problemData.splice(index,1,this.problemDataForm)
        this.nmbDialog=false
      }
      else if (this.problemDataDoe===4){
        this.editOneFiledProblemStr('statusUse',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.statusUse=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===5){
        this.editOneFiledProblemStr('origin',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.origin=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===6){
        this.editOneFiledProblemStr('outflow',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.outflow=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===7){
        this.editOneFiledProblemStr('correct',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.correct=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.dateDialog=false
      }
      else if (this.problemDataDoe===8){
        this.editOneFiledProblemStr('correctDate',this.valueDate,this.problemDataForm.id)
        this.problemDataForm.correctDate=this.valueDate
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===9){
        this.editOneFiledProblemStr('correctLiability',this.inputName,this.problemDataForm.id)
        this.problemDataForm.correctLiability=this.inputName
        this.problemData.splice(index,1,this.problemDataForm)
        this.nameDialog=false
      }
      else if (this.problemDataDoe===10){
        this.editOneFiledProblemStr('temporaryUse',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.temporaryUse=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===11){
        this.editOneFiledProblemStr('temporaryDate',this.valueDate,this.problemDataForm.id)
        this.problemDataForm.temporaryDate=this.valueDate
        this.problemData.splice(index,1,this.problemDataForm)
        this.dateDialog=false
      }
      else if (this.problemDataDoe===12){
        this.editOneFiledProblemStr('temporaryLiability',this.inputName,this.problemDataForm.id)
        this.problemDataForm.temporaryLiability=this.inputName
        this.problemData.splice(index,1,this.problemDataForm)
        this.nameDialog=false
      }
      else if (this.problemDataDoe===13){
        this.editOneFiledProblemStr('permanent',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.permanent=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===14){
        this.editOneFiledProblemStr('permanentDate',this.valueDate,this.problemDataForm.id)
        this.problemDataForm.permanentDate=this.valueDate
        this.problemData.splice(index,1,this.problemDataForm)
        this.dateDialog=false
      }
      else if (this.problemDataDoe===15){
        this.editOneFiledProblemStr('permanentLiability',this.inputName,this.problemDataForm.id)
        this.problemDataForm.permanentLiability=this.inputName
        this.problemData.splice(index,1,this.problemDataForm)
        this.nameDialog=false
      }
      else if (this.problemDataDoe===16){
        this.editOneFiledProblemStr('introspection',this.editor.txt.html(),this.problemDataForm.id)
        this.problemDataForm.introspection=this.editor.txt.html()
        this.problemData.splice(index,1,this.problemDataForm)
        this.fullTextDialog=false
      }
      else if (this.problemDataDoe===17){
        this.editOneFiledProblemStr('introspectionDate',this.valueDate,this.problemDataForm.id)
        this.problemDataForm.introspectionDate=this.valueDate
        this.problemData.splice(index,1,this.problemDataForm)
        this.dateDialog=false
      }
      else if (this.problemDataDoe===18){
        this.editOneFiledProblemStr('introspectionLiability',this.inputName,this.problemDataForm.id)
        this.problemDataForm.introspectionLiability=this.inputName
        this.problemData.splice(index,1,this.problemDataForm)
        this.nameDialog=false
      }
      else if (this.problemDataDoe===19){
        this.editOneFiledProblemStr('switchDate',this.valueDate,this.problemDataForm.id)
        this.problemDataForm.switchDate=this.valueDate
        this.problemData.splice(index,1,this.problemDataForm)
        this.dateDialog=false
      }
      else if (this.problemDataDoe===20){
        this.editOneFiledProblemStr('switchNumber',this.inputName,this.problemDataForm.id)
        this.problemDataForm.switchNumber=this.inputName
        this.problemData.splice(index,1,this.problemDataForm)
        this.nameDialog=false
      }
      else if (this.problemDataDoe===21){
        if (this.valueYes){
          this.editOneFiledProblemStr('report','是',this.problemDataForm.id)
          this.problemDataForm.report='是'
          this.problemData.splice(index,1,this.problemDataForm)
        }
        else {
          this.editOneFiledProblemStr('report','否',this.problemDataScope.row.id)
          this.problemDataForm.report='否'
          this.problemData.splice(index,1,this.problemDataForm)
        }
        this.yesDialog=false
      }
      else if (this.problemDataDoe===22){
        if (this.valueYes){
          this.editOneFiledProblemStr('finish','是',this.problemDataForm.id)
          this.problemDataForm.finish='是'
          this.problemData.splice(index,1,this.problemDataForm)
          //如果本行问题关联到了报警/异常板块，修改报警信息中的问题结题状态
          if (this.problemDataForm.machinePlateName==='机'){
            let temp=this.problemDataForm.machinePlateId.split('/')
            for (let i = 0; i < temp.length; i++) {
              this.editOneFiledExceptionDataInt('isProblem',1,toInteger(temp[i]))
            }
          }
        }
        else {
          this.editOneFiledProblemStr('finish','否',this.problemDataForm.id)
          this.problemDataForm.finish='否'
          this.problemData.splice(index,1,this.problemDataForm)
          //如果本行问题关联到了报警/异常板块，修改报警信息中的问题结题状态
          if (this.problemDataForm.machinePlateName==='机'){
            let temp=this.problemDataForm.machinePlateId.split('/')
            for (let i = 0; i < temp.length; i++) {
              this.editOneFiledExceptionDataInt('isProblem',0,toInteger(temp[i]))
            }
          }
        }
        this.yesDialog=false
      }
      else if (this.problemDataDoe===23){
        this.editOneFiledProblemStr('problemName',this.editProblemText,this.problemDataForm.id)
        this.problemDataForm.problemName=this.editProblemText
        this.problemData.splice(index,1,this.problemDataForm)
        this.editProblemOneTextBigDialog=false
      }
    },
    //通用，一个提示框，点击确定后的反应
    informationOk(){
      //处理生活批准的事宜
      const index = this.problemData.findIndex(item => item.id === this.problemDataForm.id);
      if (this.problemDataDoe===24){
        //是要审核问题
        this.editOneFiledProblemStr('examineName',this.useName,this.problemDataForm.id)
        this.problemDataForm.examineName=this.useName
        this.problemData.splice(index,1,this.problemDataForm)
        this.dialogVisible=false
      }
      if (this.problemDataDoe===25){
        //是要审核问题
        this.editOneFiledProblemStr('approveName',this.useName,this.problemDataForm.id)
        this.problemDataForm.approveName=this.useName
        this.problemData.splice(index,1,this.problemDataForm)
        this.dialogVisible=false
      }
      if (this.problemDataDoe===26){
        //是要审核问题
        this.editOneFiledProblemStr('writeName',this.useName,this.problemDataForm.id)
        this.problemDataForm.writeName=this.useName
        this.problemData.splice(index,1,this.problemDataForm)
        this.dialogVisible=false
      }
    },
    //用户点击添加一个问题的显示函数：doe，1：市场问题:2：是工程内问题；3：是零公里问题; 100:是修改问题
    problemAddShow(doe){
      this.optionLineName=[]
      this.problemAddShowDoe=doe
      this.problemAddORSelect=false
      this.problemAddORSelect1=false
      this.problemAddORSelect2=false
      //组合零部件的数据
      this.productModelListOption=[]
      for (let i = 0; i < this.productModelList.length; i++) {
        let temp={
          label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
          value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
        }
        this.productModelListOption.push(temp)
      }
      // 最后，更新 productModelListOption 数组，消除重复项
      this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
          .map(itemString => JSON.parse(itemString));
      //Doe=1，市场问题添加
      if (doe===1){
        this.titleUse='您正在添加一项市场问题'
        this.customerWorkshop=customerWorkshop
        //初始化变量
        this.problemDataForm= {
          id:null,//主键
          establishTime:null,//创建时间
          updateTime:null,//修改时间
          deleteSign:1,//删除标记
          editName:this.useName,//编辑人
          workshop: '',//车间名称
          lineName:'无',//线体名称
          drawing: '', //产品图号,含产品名称
          op:'无',//工序号
          occurDate: '',//发生日期
          noteTaker: this.useName,//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',

          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',

          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam: '否',
        }
        this.dialogVisibleAddP=true
      }
      //Doe=2，是工程内问题
      else if (doe===2){
        this.titleUse='您正在添加一项工程内问题'
        //设置车间选择变量
        this.customerWorkshop=optionWorkshopOnly
        //初始化变量
        this.problemWarrantyFrom= {
          id:null,//主键
          establishTime:null,//创建时间
          updateTime:null,//修改时间
          deleteSign:1,//删除标记
          editName:this.useName,//编辑人
          workshop: '',//车间名称
          lineName:'',//线体名称
          drawing: '', //产品图号,含产品名称
          op:'',//工序号
          occurDate: '',//发生日期
          noteTaker: this.useName,//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',

          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',

          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',

          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'工程内问题',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam: '否',
        }
        this.inCompanyMainAddDialog=true
      }
      //Doe=3，是零公里问题
      else if (doe===3){
        this.titleUse='您正在添加一项零公里问题'
        //设置车间选择变量
        this.customerWorkshop=optionWorkshopNew
        //初始化变量
        this.problemDataForm= {
          id:null,//主键
          establishTime:null,//创建时间
          updateTime:null,//修改时间
          deleteSign:1,//删除标记
          editName:this.useName,//编辑人
          workshop: '',//车间名称
          lineName:'',//线体名称
          drawing: '', //产品图号,含产品名称
          op:'',//工序号
          occurDate: '',//发生日期
          noteTaker: this.useName,//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: '',//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: '',
          //小分类
          type2: '',

          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',


          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'',
          //是否完成索赔
          isEndIndemnify:'',

          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'',
          //关联板id：’料‘
          materialPlateId:'',
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam: '否',
        }
        this.dialogVisibleAddP=true
      }
    },
    //用户点击的确定增加问题，对问题进行添加
    problemDataAdd(){
      //把零部件图号、名称、供方等信息进行赋值
      if (this.problemAddShowDoe!==100){
        if (this.problemDataForm.drawing !== null && this.problemDataForm!==undefined && this.problemDataForm.drawing!==''){
          let tempProb=_.cloneDeep(this.problemDataForm.drawing.split('/'))
          this.problemDataForm.drawing=tempProb[0]+'/'+tempProb[1]+'/'+tempProb[2]+'/'+tempProb[3]
          this.problemDataForm.supplierName=tempProb[4]
        }
      }
      //是新增一个质量问题，需要看是增加到哪里
      //现在是要增加一个市场问题
      if (this.problemAddShowDoe===1){
        //增加一个零公里问题,零公里问题，是需要在问题关联中的“料”中写入’零公里标记‘
        //组合数据
        this.problemDataForm.materialPlateName='市场问题'
        //向后端写入数据
        this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemDataForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            //向后端发送数据，重新查询所有的零公里、市场问题
            this.inquiryProblemOneFindSeveralVal('materialPlateName','市场问题')
            this.dialogVisibleAddP=false
          }
        })
      }
      //现在是增加一个工程内问题
      else if (this.problemAddShowDoe===2){
        //组合数据
        this.problemDataForm.materialPlateName='工程内问题'
        //向后端写入数据
        this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemDataForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            //向后端发送数据，重新查询所有的零公里、市场问题
            this.inquiryProblemOneFindSeveralVal('materialPlateName','工程内问题')
            this.dialogVisibleAddP=false
          }
        })
      }
      //现在是增加一个零公里问题
      else if (this.problemAddShowDoe===3){
        //组合数据
        this.problemDataForm.materialPlateName='零公里'
        //向后端写入数据
        this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemDataForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            //向后端发送数据，重新查询所有的零公里、市场问题
            this.inquiryProblemOneFindSeveralVal('materialPlateName','零公里')
            this.dialogVisibleAddP=false
          }
        })
      }
      else if (this.problemAddShowDoe===100){
        this.editOneAllProblem(this.problemDataForm)
        //重新组合数据
        const index = this.problemData.findIndex(item => item.id === this.problemDataForm.id);
        this.problemData.splice(index,1,this.problemDataForm)
        this.dialogVisibleAddP=false
      }
    },
    //上传EXCEL文件的函数
    handleFileChange(file) {
      // 由于限制了只能选择一个文件，所以 fileList 只会包含一个元素（或者为空）
      const fileToRead = file.raw || null; // 使用可选链操作符来安全地访问 raw 属性
      if (!fileToRead) return;
      const reader = new FileReader();
      reader.onload = (e) => {
        const data = new Uint8Array(e.target.result);
        const workbook = XLSX.read(data, { type: 'array' });
        const firstSheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[firstSheetName];
        const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
        // 组合数据：组合成为索赔表单的内容
        this.warrantyClaimData=[]
        for (let i = 1; i < jsonData.length; i++) {
          //找到零部件名称，并组合
          const index=this.productModelList.findIndex(item=>{return  item.cpxh===jsonData[i][27]})
          let partName=''
          let supplierName=''
          if (index!==-1){
            partName=this.productModelList[index].lbjmc_C+'/'+this.productModelList[index].lbjmc_E+'/'+this.productModelList[index].lbjmc_R
            supplierName=this.productModelList[index].sccj
          }
          this.warrantyClaimData.push({
            //主键
            id:null,
            //创建时间
            establishTime:'',
            //修改时间
            updateTime:'',
            //删除标记
            deleteSign:1,
            //编辑人
            editName:this.useName,
            // 序列号
            serialNo: jsonData[i][0],
            // 经销商索赔编号
            dealerClaimNo: jsonData[i][1],
            // 索赔编号
            claimNo: jsonData[i][2],
            // 车辆识别码（Vehicle Identification Number）
            vin: jsonData[i][3],
            // 索赔类型
            claimType: jsonData[i][4],
            // 审核状态
            reviewStatus: jsonData[i][5],
            // 可能是指某种特定于流程或系统的编号（具体含义可能因公司而异）
            pwaNo: jsonData[i][6],
            // 经销商代码
            dealerCode: jsonData[i][7],
            // 经销商名称
            dealerName: jsonData[i][8],
            // 品牌
            brand: jsonData[i][9],
            // 保修开始日期
            warrantyStartingDate: jsonData[i][10],
            // 车型系列
            vehicleSeries: jsonData[i][11],
            // 里程数
            mileage: jsonData[i][12],
            // 活动代码（可能是指某种促销活动或召回活动的代码）
            campaignCode: jsonData[i][13],
            // 生产日期
            productionDate: jsonData[i][14],
            // 备件购买日期
            purchasedDateOfSparePart: jsonData[i][15],
            // 发动机编号
            engineNo: jsonData[i][16],
            // 变速箱编号
            transmissionNo: jsonData[i][17],
            // 车牌号
            licensePlateNo: jsonData[i][18],
            // 国家
            country: jsonData[i][19],
            // 城市
            city: jsonData[i][20],
            // 到货日期（可能是指车辆或备件到达经销商的日期）
            arrivalDate: jsonData[i][21],
            // 修理完成日期
            repairCompletedDate: jsonData[i][22],
            // 制造商
            manufacturer: jsonData[i][23],
            // 供应商代码
            supplierCode: jsonData[i][24],
            // 主要工时代码
            mainLaborCode: jsonData[i][25],
            // 主要工时名称（可能是指维修工作的具体项目）
            mainLaborName: jsonData[i][26],
            // 主要零件代码
            mainPartCode: jsonData[i][27],
            // 主要零件名称
            mainPartName: jsonData[i][28],
            // 系统（可能是指车辆中的某个系统，如电气系统、发动机系统等）
            systemUse: jsonData[i][29],
            // 子系统
            subSystem: jsonData[i][30],
            // 故障位置代码
            faultPositionCode: jsonData[i][31],
            // 故障症状名称
            faultSymptomName: jsonData[i][32],
            // 故障原因名称
            faultReasonName: jsonData[i][33],
            // 分包类型（可能是指维修工作中是否涉及到了分包给其他公司或个人的情况）
            subletType: jsonData[i][34],
            // 返回次数（可能是指备件或车辆因故障被返回的次数）
            returnTimes: jsonData[i][35],
            // 故障描述
            faultDescription: jsonData[i][36],
            //故障描述中文
            faultDescriptionChinese:jsonData[i][37],
            // 处理结果
            disposalResult: jsonData[i][38],
            //处理结果
            disposalResultChinese: jsonData[i][39],
            // 备注
            remarks: jsonData[i][40],
            // 工时费
            laborCost: jsonData[i][41],
            // 零件费
            partCost: jsonData[i][42],
            // 零件补偿费（可能是指因质量问题而给予的补偿）
            partCompensationCost: jsonData[i][43],
            // 工时奖励金额（这个字段可能有误，通常不这样表述，可能是指某种奖励或补贴）
            rewardAmountOfLabor: jsonData[i][44],
            // 外包费用
            outsourcingCost: jsonData[i][45],
            // 申请金额
            appliedAmount: jsonData[i][46],
            // 索赔追踪金额（可能是指用于追踪索赔进度的资金）
            claimTracingAmount: jsonData[i][47],
            // 申请日期
            applicationDate: jsonData[i][48],
            // 创建人
            creator: jsonData[i][49],
            // 审核人
            reviewer: jsonData[i][50],
            // 审核日期
            reviewDate: jsonData[i][51],
            // 首次审核日期
            firstReviewDate: jsonData[i][52],
            //记录这个索赔信息对应的问题关联类型：‘新增’，代表它是新增加的一个问题；‘关联’，是指以前已经有了，关联过去的。
            problemType:'',
            //记录问题的id
            problemId:'',
            //是否考核
            isExam: '否',
            //零部件名称
            partName:partName,
            //供应商名称
            supplierName: supplierName,
            //调查结论，主要用作原因归类用的
            investigate:'',
            //是否需要调返故障件
            isBack:'No',
            //调返提出人
            backName:'',
            //调返提出时间
            backProposeDate:'',
            //调返到发动机车间时间
            backRUSEngineDate:'',
            //调返到发动机车间交接人
            backRUSEngineName:'',
            //是否返回国内
            isBackChina:'No',
            //返回国内时间
            backCNDate:'',
            //返回国内接收人
            backCNName:'',
          })
        }
        //计算应该有的日期是不是都对了：计算维修日期
        let errorNum=''
        for (let i = 0; i < this.warrantyClaimData.length; i++) {
          if (!this.isValidDate(this.warrantyClaimData[i].repairCompletedDate)){
            if (errorNum===''){
              errorNum=String(i+2)
            }
            else {
              errorNum=errorNum+'/'+String(i+2)
            }
          }
        }
        if (errorNum!==''){
          alert('你的表格中，维修完成日期存在异常，具体在所在行：'+errorNum)
          this.warrantyClaimData=[]
          return
        }
        this.titleUse='您正在批量导入索赔信息'
        //导入IPTV数据
        this.countIPTV()
        this.warrantyClaimDialog=true
        let temp=_.cloneDeep(this.warrantyClaimData)
        for (let i = 0; i < temp.length; i++) {
          if (temp[i].IPTV3==='' || temp[i].IPTV3===null || temp[i].IPTV3===undefined){
            temp[i].IPTV3='-'
          }
          if (temp[i].IPTV6==='' || temp[i].IPTV6===null || temp[i].IPTV6===undefined){
            temp[i].IPTV6='-'
          }
          if (temp[i].IPTV12==='' || temp[i].IPTV12===null || temp[i].IPTV12===undefined){
            temp[i].IPTV12='-'
          }
          if (temp[i].IPTV24==='' || temp[i].IPTV24===null || temp[i].IPTV24===undefined){
            temp[i].IPTV24='-'
          }
          if (temp[i].IPTV36==='' || temp[i].IPTV36===null || temp[i].IPTV36===undefined){
            temp[i].IPTV36='-'
          }
        }
        this.warrantyClaimData=_.cloneDeep(temp)
      };
      reader.readAsArrayBuffer(fileToRead);
      // 显示消息（如果需要的话，可以根据实际情况调整消息内容）
      this.$message.warning(`已选择一个文件`);
    },
    //点击批量上传索赔单的确定，进行的反应
    warrantyClaimAdd(){
      // 向后端写入数据
      this.insertWarrantyList(this.warrantyClaimData)
      this.warrantyClaimDialog=false
      this.problemAddORSelect=false
      this.problemAddORSelect1=false
      this.problemAddORSelect2=false
    },
    //在索赔单的部分，1:添加一项问题，是新增,2:是关联现有的问题
    warrantyClaimAddShow(doe,scope){
      // 是要新增一个问题
      if (doe===1){
        //组合零部件的选择数据，可能用到
        this.productModelListOption=[]
        for (let i = 0; i < this.productModelList.length; i++) {
          let temp={
            label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
            value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
          }
          this.productModelListOption.push(temp)
        }
        // 最后，更新 productModelListOption 数组，消除重复项
        this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
            .map(itemString => JSON.parse(itemString));
        this.warrantyClaimDoe=doe
        this.warrantyClaimScope=scope
        this.titleUse='您正在通过索赔单新增一项问题'
        //找到这个行中的零部件编号，对应的零部件名称
        const index=this.productModelList.findIndex(item=> item.cpxh===scope.row.mainPartCode)
        let drawing
        if (index===-1){
          drawing=''
        }
        else{
          drawing=this.productModelList[index].cpxh+'/'+this.productModelList[index].lbjmc_C+'/'+this.productModelList[index].lbjmc_E+'/'+this.productModelList[index].lbjmc_R
        }
        //关联问题类型
        let IPTV=''
        if (scope.row.iPTV3!=='' && scope.row.iPTV3!==null && scope.row.iPTV3!==undefined){
          IPTV='IPTV3'
        }
        else if (scope.row.iPTV12!=='' && scope.row.iPTV12!==null && scope.row.iPTV12!==undefined){
          IPTV='IPTV12'
        }
        else if (scope.row.iPTV24!=='' && scope.row.iPTV24!==null && scope.row.iPTV24!==undefined){
          IPTV='IPTV24'
        }
        else if (scope.row.iPTV36!=='' && scope.row.iPTV36!==null && scope.row.iPTV36!==undefined){
          IPTV='IPTV36'
        }
        this.problemWarrantyFrom={
          id:null,//主键
          establishTime:'',//创建时间
          updateTime:'',//修改时间
          deleteSign:1,//删除标记
          editName:this.useName,//编辑人
          workshop: '市场问题/Market engine questions/Продажа новых двигателей напрямую с завода',// 车间名称
          lineName:'',//线体名称
          drawing: drawing, //产品图号,含产品名称
          op: '',//工序号
          occurDate: scope.row.repairCompletedDate,//发生日期
          noteTaker: '',//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: scope.row.faultDescriptionChinese,//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: 1,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: IPTV,
          //小分类
          type2: '',
          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'否',
          //是否完成索赔
          isEndIndemnify:'',
          //供应商名称
          supplierName:'',
          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'市场问题',
          //关联板id：’料‘
          materialPlateId:scope.row.id,
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam:'否',
          //销售日期
          saleDate:scope.row.productionDate,
          //行驶里程
          mileage:scope.row.mileage,
          //经销商代码（服务站名称）
          serviceId:'',
          //零部件名称
        }
        this.warrantyClaimAddDialog=true
      }
      //是关联已有问题
      else if (doe===2){
        this.selectProblemFrom={}
        this.warrantyClaimDoe=doe
        this.warrantyClaimScope=scope
        this.titleUse='您正在关联已有问题'
        this.selectProblemDialog=true
      }
      //是删除问题
      else if (doe===3){
        this.warrantyClaimDoe=doe
        this.warrantyClaimScope=scope
        this.warrantyClaimFrom=scope.row
        this.information='您正在删除一条索赔信息'
        this.warrantyDeleteDialog=true
      }
      //是编辑问题，需要编辑的是问题描述、处理结果、零部件图号、名称等、是否考核，弹出的是一个新的对话框，是一个列表
      else if (doe===4){
        //组合零部件的选择数据，可能用到
        this.productModelListOption=[]
        for (let i = 0; i < this.productModelList.length; i++) {
          let temp={
            label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
            value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
          }
          this.productModelListOption.push(temp)
        }
        // 最后，更新 productModelListOption 数组，消除重复项
        this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
            .map(itemString => JSON.parse(itemString));

        this.warrantyClaimDoe=doe
        this.warrantyClaimScope=scope
        this.warrantyClaimFrom=scope.row
        this.warrantyClaimEditDialog=true
      }
    },
    //通过索赔单，添加一项问题，点击确定,中间也包含了通过过程清单增加问题
    problemAddByWarrantyClaim(){
      //是通过索赔单，新增加一个问题
      if (this.warrantyClaimDoe===1 || this.zeroKilometersDoe===2){
        //用户已经选择了零部件名称
        if (this.problemWarrantyFrom.drawing !== null && this.problemWarrantyFrom.drawing!==''){
          let tempProb=_.cloneDeep(this.problemWarrantyFrom.drawing.split('/'))
          this.problemWarrantyFrom.drawing=tempProb[0]+'/'+tempProb[1]+'/'+tempProb[2]+'/'+tempProb[3]
          this.problemWarrantyFrom.supplierName=tempProb[4]
        }
        //向后端写入数据
        this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemWarrantyFrom).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            //向后端发送数据，重新查询所有的零公里、市场问题
            this.inquiryProblemOneFindSeveralVal('materialPlateName','市场问题').then(()=>
                {
                  this.warrantyClaimAddDialog=false
                  //修改索赔单的问题类型、关联的id，新增的怎么知道ID，需要返回一个信息吧？那么就先根据信息去查，现在所有的市场问题都已经知道了，那么那个是唯一的？
                  setTimeout(() => {
                    //要判断，是从哪里要添加问题，如果是从索赔单中添加
                    if (this.activeName==='warrantyClaims'){
                      const index = this.problemData.findIndex(item =>
                          item.problemName === this.problemWarrantyFrom.problemName &&
                          item.describeUse === this.problemWarrantyFrom.describeUse &&
                          item.occurDate === this.problemWarrantyFrom.occurDate
                      )
                      this.editWarrantyClaimField(this.warrantyClaimScope.row.id,'problemType/problemId','新增问题'+'/'+this.problemData[index].id,'str/str')
                      //修改索赔单数据
                      this.warrantyClaimData[this.warrantyClaimScope.$index].problemType='新增问题'
                      this.warrantyClaimData[this.warrantyClaimData.$index].problemId=this.problemData[index].id
                    }
                    else if(this.activeName==='zeroKilometers'){
                      const index = this.problemData.findIndex(item =>
                          item.problemName === this.problemWarrantyFrom.problemName &&
                          item.describeUse === this.problemWarrantyFrom.describeUse &&
                          item.occurDate === this.problemWarrantyFrom.occurDate
                      )
                      this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','新增问题'+'|*|'+String(this.problemData[index].id),'str|*|str')
                      //修不良品单的大表数据
                      this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='新增问题'
                      this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.problemData[index].id
                    }
                  }, 1000) // 1000ms = 1秒
                }
            )
          }
        })
      }
    },
    //关联已有问题，点击问题某一行的反应
    problemCurrentChange(row){
      this.selectProblemFrom=row
    },
    //关联多个选择项（用在了IPTV报告上）
    handleSelectionChange(val){
      this.iptvReportProblemRelation=val
    },
    //点击关联已有问题的确定
    selectProblemOk(){
      //在零公里问题中关联，就涉及到过程问题关联
      if (this.buttonDoe===4){
        this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','关联已有'+'|*|'+String(this.selectProblemFrom.id),'str|*|str')
        //修不良品单的大表数据
        this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='关联已有'
        this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.selectProblemFrom.id
        this.selectProblemDialog=false
      }
      //在市场问题中关联，关联的是索赔单的问题
      if (this.buttonDoe===5){
        if (this.activeName==='warrantyClaims'){
          //向后端发送，修改索赔单问题库
          this.editWarrantyClaimField(this.warrantyClaimScope.row.id,'problemType/problemId','关联已有'+'/'+this.selectProblemFrom.id,'str/str')
          //修改大表
          this.warrantyClaimData[this.warrantyClaimScope.$index].problemType='关联已有'
          this.warrantyClaimData[this.warrantyClaimScope.$index].problemId=this.selectProblemFrom.id
          this.selectProblemDialog=false
        }
        else if (this.activeName==='zeroKilometers'){
          this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','关联已有'+'|*|'+String(this.selectProblemFrom.id),'str|*|str')
          //修不良品单的大表数据
          this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='关联已有'
          this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.selectProblemFrom.id
          this.selectProblemDialog=false
        }
      }
      //在工程内问题中管理，关联的是不合格品单
      else if (this.buttonDoe===6){
        if (this.activeName==='noGoodPart'){
          //向后端发送，修改不良品单
          this.editNoGoodDataField(this.noGoodPatAssScope.row.id,'problemType/problemId','关联已有'+'/'+this.selectProblemFrom.id,'str/str')
          //修改代表
          this.noGoodPartAssData[this.noGoodPatAssScope.$index].problemType='关联已有'
          this.noGoodPartAssData[this.noGoodPatAssScope.$index].problemId=this.selectProblemFrom.id
          this.selectProblemDialog=false
        }
        else if (this.activeName==='zeroKilometers'){
          this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','关联已有'+'|*|'+String(this.selectProblemFrom.id),'str|*|str')
          //修不良品单的大表数据
          this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='关联已有'
          this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.selectProblemFrom.id
          this.selectProblemDialog=false
        }
      }
    },
    //点击从索赔单的编号，显示出问题的函数
    problemWarrantyShow(scope){
      this.problemDataForm={}
      //根据id，向后端，根据id进行筛选问题库数据，首先从已经调过来的选，如果选不到，再到服务器上选
      if (scope.row.problemId===null || scope.row.problemId===undefined || scope.row.problemId===''){
        this.$message.error('未关联问题')
      }else {
        this.inquiryProblemById(scope.row.problemId)
        this.problemSolvingDrawer=true
      }

    },
    //点击从索赔单中删除一条索赔单信息
    warrantyDeleteOk(){
      //修改后端的删除标记，需要修改的是int
      this.editWarrantyClaimField(this.warrantyClaimScope.row.id,'deleteSign','0','int')
      //修改前端数据
      this.warrantyClaimData=this.warrantyClaimData.splice(this.warrantyClaimScope.$index,1)
      this.warrantyDeleteDialog=false
    },
    //点击从索赔单中编辑索赔单
    warrantyClaimEdit(){
      //重新组合数据
      let temp=_.cloneDeep(this.warrantyClaimFrom)
      const index=this.productModelList.indexOf(item => item.cpxh===temp.partName.split('/')[0])
      if (index!==-1){
        this.warrantyClaimFrom.partName=this.productModelList[index].lbjmc_C+'/'+this.productModelList[index].lbjmc_E+this.productModelList[index].lbjmc_R
        this.warrantyClaimFrom.mainPartCode=this.productModelList[index].cpxh
        this.warrantyClaimFrom.supplierName=this.productModelList[index].sccj
        //向后端发生信息，修改的是所有的字段
        this.editWarrantyClaimField(this.warrantyClaimFrom.id,
            'faultDescriptionChinese/disposalResultChinese/partName/mainPartCode/supplierName/isExam',
            this.warrantyClaimFrom.faultDescriptionChinese+'/'+this.warrantyClaimFrom.disposalResultChinese+'/'+this.warrantyClaimFrom.partName+'/'+this.warrantyClaimFrom.mainPartCode+'/'+this.warrantyClaimFrom.supplierName+'/'+this.warrantyClaimFrom.isExam,
            'str/str/str/str/str/str')
        //修改大表数据
        this.warrantyClaimData[this.warrantyClaimScope.$index].faultDescriptionChinese=this.warrantyClaimFrom.faultDescriptionChinese
        this.warrantyClaimData[this.warrantyClaimScope.$index].disposalResultChinese=this.warrantyClaimFrom.disposalResultChinese
        this.warrantyClaimData[this.warrantyClaimScope.$index].partName=this.warrantyClaimFrom.partName
        this.warrantyClaimData[this.warrantyClaimScope.$index].mainLaborCode=this.warrantyClaimFrom.mainPartCode
        this.warrantyClaimData[this.warrantyClaimScope.$index].supplierName=this.warrantyClaimFrom.supplierName
        this.warrantyClaimData[this.warrantyClaimScope.$index].isExam=this.warrantyClaimFrom.isExam

      } else {
        //向后端发生信息，修改的是所有的字段
        this.editWarrantyClaimField(this.warrantyClaimFrom.id,
            'faultDescriptionChinese/disposalResultChinese/isExam',
            this.warrantyClaimFrom.faultDescriptionChinese+'/'+this.warrantyClaimFrom.disposalResultChinese+'/'+this.warrantyClaimFrom.isExam,
            'str/str/str')
        this.warrantyClaimData[this.warrantyClaimScope.$index].faultDescriptionChinese=this.warrantyClaimFrom.faultDescriptionChinese
        this.warrantyClaimData[this.warrantyClaimScope.$index].disposalResultChinese=this.warrantyClaimFrom.disposalResultChinese
        this.warrantyClaimData[this.warrantyClaimScope.$index].isExam=this.warrantyClaimFrom.isExam
      }
      this.warrantyClaimEditDialog=false

    },
    //点击不良品记录表，显示操作的函数
    inCompanyAddShow(doe,scope){
      this.noGoodPatAssDoe=doe
      this.noGoodPatAssScope=scope
      //是要新增1项问题
      if (doe===1){
        //组合零部件的选择数据，可能用到
        this.productModelListOption=[]
        for (let i = 0; i < this.productModelList.length; i++) {
          let temp={
            label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
            value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
          }
          this.productModelListOption.push(temp)
        }
        // 最后，更新 productModelListOption 数组，消除重复项
        this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
            .map(itemString => JSON.parse(itemString));
        this.titleUse='您正在通过不合格品单新增一项问题'
        //找到这个行中的零部件编号，对应的零部件名称
        const index=this.productModelList.findIndex(item=> item.cpxh===scope.row.cpxh)
        let drawing
        if (index===-1){
          drawing=''
        }
        else{
          drawing=this.productModelList[index].cpxh+'/'+this.productModelList[index].lbjmc_C+'/'+this.productModelList[index].lbjmc_E+'/'+this.productModelList[index].lbjmc_R
        }
        this.problemWarrantyFrom={
          id:null,//主键
          establishTime:'',//创建时间
          updateTime:'',//修改时间
          deleteSign:1,//删除标记
          editName:this.useName,//编辑人
          workshop: '',// 车间名称
          lineName:'',//线体名称
          drawing: drawing, //产品图号,含产品名称
          op: '',//工序号
          occurDate: scope.row.create_time,//发生日期
          noteTaker: '',//记录人
          liability: '',//责任人
          liabilityNub: '',//责任人工号
          problemName: '',//问题名称
          describeUse: scope.row.qxms,//问题描述
          describeAnnex:'',//问题描述的图片附件
          quantity: scope.row.sl,//问题数量
          introspection: '',//反思
          statusUse: '',//现状调查
          //发生源
          origin: '',
          //流出源
          outflow: '',
          //临时措施
          temporaryUse: '',
          //长远措施
          permanent: '',
          //纠正
          correct: '',
          //切换发动机/零部件号日期
          switchDate: '',
          //切换发动机号/零部件号
          switchNumber: '',
          //“纠正”的完成时间
          correctDate: '',
          //"纠正的"负责人
          correctLiability: '',
          //“临时措施”的完成时间
          temporaryDate: '',
          //"临时措施"的负责人
          temporaryLiability: '',
          //“长远措施”的完成时间
          permanentDate: '',
          //"长远措施"的负责人
          permanentLiability: '',
          //“不足反省”的完成时间
          introspectionDate: '',
          //"不足反省"的负责人
          introspectionLiability: '',
          //结论先行
          conclusion: '',
          //结题状态标签
          finish: '否',
          //记录是否需要汇报
          report: '',
          //大的分类的
          type1: scope.row.bflx,
          //小分类
          type2: '',
          //编制人
          writeName:'',
          //审核
          examineName:'',
          //批准
          approveName:'',
          //责任方
          liabilityName:'',
          //是否索赔
          isIndemnify:'否',
          //是否完成索赔
          isEndIndemnify:'',
          //供应商名称
          supplierName:'',
          //关联板块名:"机"
          machinePlateName:'',
          //关联板块id；“机”
          machinePlateId:'',
          //关联板块名:"人"
          peoplePlateName:'',
          //关联板块id；“人”
          peoplePlateId:'',
          //关联板块名："料“
          materialPlateName:'工程内问题',
          //关联板id：’料‘
          materialPlateId:scope.row.id,
          //关联板块名：’法‘
          methodPlateName:'',
          //关联板块id；“法”
          methodPlateId:'',
          //关联板块名：’环‘
          environmentPlateName:'',
          //关联板块id；“环”
          environmentPlateId:'',
          //关联板块名：’测‘
          measurePlateName:'',
          //关联板块id；“测”
          measurePlateId:'',
          //是否考核
          isExam:'否',
          //销售日期
          saleDate:scope.row.productionDate,
          //行驶里程
          mileage:scope.row.mileage,
          //经销商代码（服务站名称）
          serviceId:'',
        }
        this.inCompanyAddDialog=true
      }
      //是要关联已有问题
      if (doe===2){
        //继续用索赔弹窗呢？先把那么就先限定这个标签显示的位置
        this.selectProblemFrom={}
        this.titleUse='您正在对不良品单关联已有问题'
        this.selectProblemDialog=true
      }
    },
    //点击从不良品单的编号，显示出问题的函数
    problemInCompanyShow(scope){
      //根据id，向后端，根据id进行筛选问题库数据，
      if (scope.row.problemId===null || scope.row.problemId===undefined || scope.row.problemId===''){
        this.$message.error('未关联问题')
      }else {
        this.inquiryProblemById(scope.row.problemId)
        this.problemSolvingDrawer=true
      }
    },
    //通过不良品，添加一项问题，点击确定按钮
    problemAddByInCompany(){
      //数据校核
      if (this.problemWarrantyFrom.problemName==='' || this.problemWarrantyFrom.problemName===null || this.problemWarrantyFrom.problemName===undefined){
        this.$message.error('问题名称未填写，请填写')
        return
      }
      //向后端写入数据，写入问题库中
      this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemWarrantyFrom).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          //向后端发送数据，重新查询所有的工程内问题
          this.inquiryProblemOneFindSeveralVal('materialPlateName','工程内问题').then(()=>
              {
                this.inCompanyAddDialog=false
                //修改不合格品单中的问题类型、关联的id，新增的怎么知道ID，需要返回一个信息吧？那么就先根据信息去查，现在所有的市场问题都已经知道了，那么那个是唯一的？
                setTimeout(() => {
                  if (this.activeName==='noGoodPart'){
                    const index = this.problemData.findIndex(item =>
                        item.problemName === this.problemWarrantyFrom.problemName &&
                        item.describeUse === this.problemWarrantyFrom.describeUse &&
                        item.occurDate === this.problemWarrantyFrom.occurDate
                    )
                    if (index===-1){
                      this.$message.error('程序出错，请联系管理员')
                      return
                    }
                    this.editNoGoodDataField(this.noGoodPatAssScope.row.id,'problemType/problemId','新增问题'+'/'+String(this.problemData[index].id),'str/str')
                    //修不良品单的大表数据
                    this.noGoodPartAssData[this.noGoodPatAssScope.$index].problemType='新增问题'
                    this.noGoodPartAssData[this.noGoodPatAssScope.$index].problemId=this.problemData[index].id
                  }
                  else if(this.activeName==='zeroKilometers'){
                    const index = this.problemData.findIndex(item =>
                        item.problemName === this.problemWarrantyFrom.problemName &&
                        item.describeUse === this.problemWarrantyFrom.describeUse &&
                        item.occurDate === this.problemWarrantyFrom.occurDate
                    )
                    if (index===-1){
                      this.$message.error('程序出错，请联系管理员')
                      return
                    }
                    this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','新增问题'+'|*|'+String(this.problemData[index].id),'str|*|str')
                    //修不良品单的大表数据
                    this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='新增问题'
                    this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.problemData[index].id
                  }
                }, 1000) // 1000ms = 1秒
              }
          )
        }
      })
    },
    //从主导航上，添加一个工程内的不良
    problemAddByInCompanyMainAdd(){
      //数据校核
      if (this.problemWarrantyFrom.problemName==='' || this.problemWarrantyFrom.problemName===null || this.problemWarrantyFrom.problemName===undefined){
        this.$message.error('问题名称未填写，请填写')
        return
      }
      //向后端写入数据，写入问题库中
      this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemWarrantyFrom).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          //向后端发送数据，重新查询所有的零公里、市场问题
          this.inquiryProblemOneFindSeveralVal('materialPlateName','工程内问题').then(()=>
              {
                this.inCompanyMainAddDialog=false
              }
          )
        }
      })
    },
    //选择IPTV，筛选出想要的IPTV
    selectIPTV(){
      if (this.iptvType==='All Problem'){
        this.selectMoon=[]
        this.inquiryWarrantyClaimAll()//调取所有的索赔信息
      }
      else if (this.selectMoon===null || this.selectMoon===undefined || this.selectMoon===''){
        this.inquiryWarrantyClaimOneFiledNoVoid(this.iptvType)
      }
      //用户选择了月份，需要通过一个字段来查询等于多个数据的情况，现在用户选择的月份数量不确定，所有后端去做拼接了
      else {
        //把用户现在的数组变更为字符串
        let selectMoon=''
        for (let i = 0; i < this.selectMoon.length; i++) {
          if (i===0){
            selectMoon=this.selectMoon[i]
          }else {
            selectMoon=selectMoon+'/'+this.selectMoon[i]
          }
        }
        //向后端查询数据
        this.inquiryWarrantyClaimOneFiledSeveral(this.iptvType,selectMoon)
      }
    },
    //从主页菜单上，选择问题,用在了0公里
    problemSelect(doe){
      //筛选操作是来市场的
      if (doe===1){
        //首先看用户是不是选择了所有，如果是，就选择所有，不执行下面的
        let selectType;
        for (let i = 0; i < this.problemSelectList.length; i++) {
          selectType=selectType+this.problemSelectList[i]
        }
        if (selectType.includes('全部')){
          this.inquiryProblemOneFindSeveralVal('materialPlateName','零公里','市场问题',)
        }
        else if (selectType.includes('汇报') && selectType.includes('未结题') && selectType.includes('已结题')){
          //查找需要汇报的，并且已结题、未结题的，那么就是要汇报的
          this.problemData=this.problemDataCopy.filter(item => item.report === '是')
        }
        else if (selectType.includes('汇报') && selectType.includes('未结题')){
          //查找需要汇报的，并且未结题
          this.problemData=this.problemDataCopy.filter(item => item.report === '是' && item.finish==='否')
        }
        else if (selectType.includes('汇报') && selectType.includes('已结题')){
          //查找汇报的，且已结题的；
          this.problemData=this.problemDataCopy.filter(item => item.report === '是' && item.finish==='是')
        }
        else if (selectType.includes('已结题') && selectType.includes('未结题')){
          this.inquiryProblemOneFindSeveralVal('materialPlateName','零公里','市场问题',)
        }
        else if (selectType.includes('未结题')){
          this.problemData=this.problemDataCopy.filter(item => item.finish === '否')
        }
        else if (selectType.includes('已结题')){
          this.problemData=this.problemDataCopy.filter(item => item.finish === '是')
        }
        else if (selectType.includes('汇报')){
          //查找需要汇报的，其他的查找
          this.problemData=this.problemDataCopy.filter(item => item.report === '是')
        }

      }
      //筛选操作是来自工程内的
      if (doe===2){
        let temp=_.cloneDeep(this.problemDataCopy)
        this.problemData=[]
        // 直接的信息，提供给后端，对同一字段进行筛选，需要用到辅助函数，
        for (let i = 0; i < this.inCompanyOptionVal.length; i++) {
          let pu=temp.filter(item=> item.type1===this.inCompanyOptionVal[i])
          this.problemData.push(...pu)


        }
      }

      //关闭所有的提示框
      this.problemAddORSelect=false
      this.problemAddORSelect1=false
      this.problemAddORSelect2=false
    },
    //从问题列表上，看关联了那些问题
    associationShow(scope){
      this.problemDataForm=scope.row
      this.problemDataScope=scope
      //看是从哪个地方要去查询问题，5是看市场问题
      if(this.buttonDoe===5){
        this.titleUse='您正在查看归集问题明细-市场问题'
        this.association='市场问题'
        this.$request.post('/inquiryWarrantyClaimOneFiledSeveralProblemManagement',{
          filedName:'problemId',
          filedVal:String(this.problemDataForm.id)
        })
            .then(result=>{
              if (result.code === 401) {
                this.$router.push('UserLogin')
                alert("您未登录，请登录")
              } else {
                this.warrantyClaimDataShow=result.data
              }
            })
      }
      //6是看工程内问题
      else if(this.buttonDoe===6){
        this.titleUse='您正在查看归集问题明细-工程内'
        this.association='工程内问题'
        this.$request.post('/inquiryNoGoodFiledSeveralProblemManagement',{
          filedName:'problemId',
          filedVal:String(this.problemDataForm.id)
        })
            .then(result=>{
              if (result.code === 401) {
                this.$router.push('UserLogin')
                alert("您未登录，请登录")
              } else {
                this.noGoodPartAssDataShow=result.data
              }
            })
      }
      //4是从零公里问题中查询
      else if (this.buttonDoe===4){
        //到零公里去筛选数据
        this.titleUse='您正在查看归集问题明细-零公里'
        this.association='零公里'
        //向后端查询数据
        this.$request.post('inquiryOneFieldZeroKilometersProblemManagement',{
          fieldName:'problemId',
          fieldVal:String(this.problemDataForm.id)
        }).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            this.zeroKilometersDataShow=result.data
          }
        })

      }
      //需要弹窗，进行显示
      this.problemAssociationDialog=true
    },
    //添加、编辑零公里问题的显示弹窗(过程问题，不止是在0公里）,
    zeroKilometersEditShow(doe,scope){
      //组合零部件的选择数据，可能用到
      this.productModelListOption=[]
      for (let i = 0; i < this.productModelList.length; i++) {
        let temp={
          label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
          value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
        }
        this.productModelListOption.push(temp)
      }
      // 最后，更新 productModelListOption 数组，消除重复项
      this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
          .map(itemString => JSON.parse(itemString));

      this.zeroKilometersDoe=doe
      this.zeroKilometersScope=scope
      //是添加一个问题,不止是一个0公里，所有可能不记录的都在这个上面
      if (doe===1){
        if (this.buttonDoe===4){
          this.titleUse='添加一项零公里清单'
          //建立一个新的表单
          this.zeroKilometersFrom={
            id:null,//主键
            establishTime:null,//创建时间
            updateTime:null,//修改时间
            deleteSign:'1',//删除标记
            editName:this.useName+'/'+this.useId,//编辑人

            //发生日期
            occurDate: '',
            //机型
            engineType:'',
            //发动机号
            engineNo:'',
            //问题描述
            describeUse: '',
            //零部件名称
            partName:'',
            //问题数量
            quantity: 1,
            //详细信息
            detailed:'',
            //生产场地
            placeProduction:'',
            //责任方
            responsibleParty:'',
            //是否考核
            isExam:'否',
            //记录是什么类型
            typeUse: '零公里',
            //记录行驶里程
            mileage: 0,
          }
        }
        if (this.buttonDoe===5){
          this.titleUse='添加一项市场问题清单'
          //建立一个新的表单
          this.zeroKilometersFrom={
            id:null,//主键
            establishTime:null,//创建时间
            updateTime:null,//修改时间
            deleteSign:'1',//删除标记
            editName:this.useName+'/'+this.useId,//编辑人

            //发生日期
            occurDate: '',
            //机型
            engineType:'',
            //发动机号
            engineNo:'',
            //问题描述
            describeUse: '',
            //零部件名称
            partName:'',
            //问题数量
            quantity: 1,
            //详细信息
            detailed:'',
            //生产场地
            placeProduction:'',
            //责任方
            responsibleParty:'',
            //是否考核
            isExam:'否',
            //记录是什么类型
            typeUse: '市场问题',
            //记录行驶里程
            mileage: 0,
          }
        }
        if (this.buttonDoe===6){
          this.titleUse='添加一项工程内题清单'
          //建立一个新的表单
          this.zeroKilometersFrom={
            id:null,//主键
            establishTime:null,//创建时间
            updateTime:null,//修改时间
            deleteSign:'1',//删除标记
            editName:this.useName+'/'+this.useId,//编辑人
            //发生日期
            occurDate: '',
            //机型
            engineType:'',
            //发动机号
            engineNo:'',
            //问题描述
            describeUse: '',
            //零部件名称
            partName:'',
            //问题数量
            quantity: 1,
            //详细信息
            detailed:'',
            //生产场地
            placeProduction:'',
            //责任方
            responsibleParty:'',
            //是否考核
            isExam:'否',
            //记录是什么类型
            typeUse: '工程内问题',
            //记录行驶里程
            mileage: 0,
          }
        }
        this.zeroKilometersEditDialog=true
      }
      //是要通过过程问题清单，新增一个质量问题，根据不同的板块，调用不同的新增问题的显示窗口
      if (doe===2){
        //是在零公里问题的状态下添加,需要增加一个0公里清单添加问题的弹窗
        if (this.buttonDoe===4){
          this.problemWarrantyFrom={
            id:null,//主键
            establishTime:'',//创建时间
            updateTime:'',//修改时间
            deleteSign:1,//删除标记
            editName:this.useName,//编辑人
            workshop: '',// 车间名称
            lineName:'',//线体名称
            drawing: scope.row.partName, //产品图号,含产品名称
            op: '',//工序号
            occurDate: scope.row.occurDate,//发生日期
            noteTaker: '',//记录人
            liability: '',//责任人
            liabilityNub: '',//责任人工号
            problemName: '',//问题名称
            describeUse: scope.row.detailed,//问题描述
            describeAnnex:'',//问题描述的图片附件
            quantity: scope.row.quantity,//问题数量
            introspection: '',//反思
            statusUse: '',//现状调查
            //发生源
            origin: '',
            //流出源
            outflow: '',
            //临时措施
            temporaryUse: '',
            //长远措施
            permanent: '',
            //纠正
            correct: '',
            //切换发动机/零部件号日期
            switchDate: '',
            //切换发动机号/零部件号
            switchNumber: '',
            //“纠正”的完成时间
            correctDate: '',
            //"纠正的"负责人
            correctLiability: '',
            //“临时措施”的完成时间
            temporaryDate: '',
            //"临时措施"的负责人
            temporaryLiability: '',
            //“长远措施”的完成时间
            permanentDate: '',
            //"长远措施"的负责人
            permanentLiability: '',
            //“不足反省”的完成时间
            introspectionDate: '',
            //"不足反省"的负责人
            introspectionLiability: '',
            //结论先行
            conclusion: '',
            //结题状态标签
            finish: '否',
            //记录是否需要汇报
            report: '',
            //大的分类的
            type1: scope.row.bflx,
            //小分类
            type2: '',
            //编制人
            writeName:'',
            //审核
            examineName:'',
            //批准
            approveName:'',
            //责任方
            liabilityName:'',
            //是否索赔
            isIndemnify:'否',
            //是否完成索赔
            isEndIndemnify:'',
            //供应商名称
            supplierName:'',
            //关联板块名:"机"
            machinePlateName:'',
            //关联板块id；“机”
            machinePlateId:'',
            //关联板块名:"人"
            peoplePlateName:'',
            //关联板块id；“人”
            peoplePlateId:'',
            //关联板块名："料“
            materialPlateName:'零公里',
            //关联板id：’料‘
            materialPlateId:scope.row.id,
            //关联板块名：’法‘
            methodPlateName:'',
            //关联板块id；“法”
            methodPlateId:'',
            //关联板块名：’环‘
            environmentPlateName:'',
            //关联板块id；“环”
            environmentPlateId:'',
            //关联板块名：’测‘
            measurePlateName:'',
            //关联板块id；“测”
            measurePlateId:'',
            //是否考核
            isExam:'否',
            //销售日期
            saleDate:'',
            //行驶里程
            mileage:0,
            //经销商代码（服务站名称）
            serviceId:'',
          }
          this.zeroKilometersAddDialog=true
        }
        //是在市场问题状态下，添加
        else if (this.buttonDoe===5){
          this.titleUse='您正在通过过程清单新增一项问题'
          this.problemWarrantyFrom={
            id:null,//主键
            establishTime:'',//创建时间
            updateTime:'',//修改时间
            deleteSign:1,//删除标记
            editName:this.useName,//编辑人
            workshop: '',// 车间名称
            lineName:'',//线体名称
            drawing: scope.row.partName, //产品图号,含产品名称
            op: '',//工序号
            occurDate: scope.row.occurDate,//发生日期
            noteTaker: '',//记录人
            liability: '',//责任人
            liabilityNub: '',//责任人工号
            problemName: '',//问题名称
            describeUse: scope.row.detailed,//问题描述
            describeAnnex:'',//问题描述的图片附件
            quantity: 1,//问题数量
            introspection: '',//反思
            statusUse: '',//现状调查
            //发生源
            origin: '',
            //流出源
            outflow: '',
            //临时措施
            temporaryUse: '',
            //长远措施
            permanent: '',
            //纠正
            correct: '',
            //切换发动机/零部件号日期
            switchDate: '',
            //切换发动机号/零部件号
            switchNumber: '',
            //“纠正”的完成时间
            correctDate: '',
            //"纠正的"负责人
            correctLiability: '',
            //“临时措施”的完成时间
            temporaryDate: '',
            //"临时措施"的负责人
            temporaryLiability: '',
            //“长远措施”的完成时间
            permanentDate: '',
            //"长远措施"的负责人
            permanentLiability: '',
            //“不足反省”的完成时间
            introspectionDate: '',
            //"不足反省"的负责人
            introspectionLiability: '',
            //结论先行
            conclusion: '',
            //结题状态标签
            finish: '否',
            //记录是否需要汇报
            report: '',
            //大的分类的
            type1: '',
            //小分类
            type2: '',
            //编制人
            writeName:'',
            //审核
            examineName:'',
            //批准
            approveName:'',
            //责任方
            liabilityName:'',
            //是否索赔
            isIndemnify:'否',
            //是否完成索赔
            isEndIndemnify:'',
            //供应商名称
            supplierName:'',
            //关联板块名:"机"
            machinePlateName:'',
            //关联板块id；“机”
            machinePlateId:'',
            //关联板块名:"人"
            peoplePlateName:'',
            //关联板块id；“人”
            peoplePlateId:'',
            //关联板块名："料“
            materialPlateName:'市场问题',
            //关联板id：’料‘
            materialPlateId:scope.row.id,
            //关联板块名：’法‘
            methodPlateName:'',
            //关联板块id；“法”
            methodPlateId:'',
            //关联板块名：’环‘
            environmentPlateName:'',
            //关联板块id；“环”
            environmentPlateId:'',
            //关联板块名：’测‘
            measurePlateName:'',
            //关联板块id；“测”
            measurePlateId:'',
            //是否考核
            isExam:'否',
            //销售日期
            saleDate:'',
            //行驶里程
            mileage:scope.row.mileage,
            //经销商代码（服务站名称）
            serviceId:'',
            //零部件名称
          }
          this.warrantyClaimAddDialog=true
        }
        //是在工程内问题的状态下，添加
        else if (this.buttonDoe===6){
          this.titleUse='您正在通过过程清单新增一项问题'
          this.problemWarrantyFrom={
            id:null,//主键
            establishTime:'',//创建时间
            updateTime:'',//修改时间
            deleteSign:1,//删除标记
            editName:this.useName,//编辑人
            workshop: '',// 车间名称
            lineName:'',//线体名称
            drawing: scope.row.partName, //产品图号,含产品名称
            op: '',//工序号
            occurDate: scope.row.occurDate,//发生日期
            noteTaker: '',//记录人
            liability: '',//责任人
            liabilityNub: '',//责任人工号
            problemName: '',//问题名称
            describeUse: scope.row.detailed,//问题描述
            describeAnnex:'',//问题描述的图片附件
            quantity: scope.row.quantity,//问题数量
            introspection: '',//反思
            statusUse: '',//现状调查
            //发生源
            origin: '',
            //流出源
            outflow: '',
            //临时措施
            temporaryUse: '',
            //长远措施
            permanent: '',
            //纠正
            correct: '',
            //切换发动机/零部件号日期
            switchDate: '',
            //切换发动机号/零部件号
            switchNumber: '',
            //“纠正”的完成时间
            correctDate: '',
            //"纠正的"负责人
            correctLiability: '',
            //“临时措施”的完成时间
            temporaryDate: '',
            //"临时措施"的负责人
            temporaryLiability: '',
            //“长远措施”的完成时间
            permanentDate: '',
            //"长远措施"的负责人
            permanentLiability: '',
            //“不足反省”的完成时间
            introspectionDate: '',
            //"不足反省"的负责人
            introspectionLiability: '',
            //结论先行
            conclusion: '',
            //结题状态标签
            finish: '否',
            //记录是否需要汇报
            report: '',
            //大的分类的
            type1: '',
            //小分类
            type2: '',
            //编制人
            writeName:'',
            //审核
            examineName:'',
            //批准
            approveName:'',
            //责任方
            liabilityName:'',
            //是否索赔
            isIndemnify:'否',
            //是否完成索赔
            isEndIndemnify:'',
            //供应商名称
            supplierName:'',
            //关联板块名:"机"
            machinePlateName:'',
            //关联板块id；“机”
            machinePlateId:'',
            //关联板块名:"人"
            peoplePlateName:'',
            //关联板块id；“人”
            peoplePlateId:'',
            //关联板块名："料“
            materialPlateName:'工程内问题',
            //关联板id：’料‘
            materialPlateId:scope.row.id,
            //关联板块名：’法‘
            methodPlateName:'',
            //关联板块id；“法”
            methodPlateId:'',
            //关联板块名：’环‘
            environmentPlateName:'',
            //关联板块id；“环”
            environmentPlateId:'',
            //关联板块名：’测‘
            measurePlateName:'',
            //关联板块id；“测”
            measurePlateId:'',
            //是否考核
            isExam:'否',
            //销售日期
            saleDate:'',
            //行驶里程
            mileage:0,
            //经销商代码（服务站名称）
            serviceId:'',
          }
          this.inCompanyAddDialog=true
        }
      }
      //是要通过过程问题清单，关联一个质量问题。
      if (doe===3){
        this.selectProblemFrom={}
        this.titleUse='您正在通过过程清单关联已有问题'
        this.selectProblemDialog=true
      }
      //是管理员要修改这个问题的基本信息
      if (doe===4){
        this.titleUse='修改一条问题清单'
        this.zeroKilometersFrom=_.cloneDeep(scope.row)

        this.zeroKilometersEditDialog=true
      }
      //是管理员要删除这个问题
      if (doe===5){
        this.zeroKilometersFrom=scope.row
        this.zeroKilometerDeleteDialog=true
        this.information='您确定删除本条记录吗？'
      }
    },
    //添加、编辑零公里问题一项问题的显示弹窗(过程问题，不止是在0公里）中点击确定按钮
    problemAddByzeroKilometers(){
      //数据校核
      if (this.problemWarrantyFrom.problemName==='' || this.problemWarrantyFrom.problemName===null || this.problemWarrantyFrom.problemName===undefined){
        this.$message.error('问题名称未填写，请填写')
        return
      }
      //向后端写入数据，写入问题库中
      this.$request.post('/problemInsertOneWorkExceptionRemoval',this.problemWarrantyFrom).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          //向后端发送数据，重新查询所有的零公里问题
          this.inquiryProblemOneFindSeveralVal('materialPlateName','零公里').then(()=>
              {
                this.zeroKilometersAddDialog=false
                //修改过程清单中的问题类型、关联的id，新增的怎么知道ID，需要返回一个信息吧？那么就先根据信息去查，现在所有的市场问题都已经知道了，那么那个是唯一的？
                setTimeout(() => {
                  const index = this.problemData.findIndex(item =>
                      item.problemName === this.problemWarrantyFrom.problemName &&
                      item.describeUse === this.problemWarrantyFrom.describeUse &&
                      item.occurDate === this.problemWarrantyFrom.occurDate
                  )
                  if (index===-1){
                    this.$message.error('程序出错，请联系管理员')
                    return
                  }
                  this.editZeroKilometersField(this.zeroKilometersScope.row.id,'problemType|*|problemId','新增问题'+'|*|'+String(this.problemData[index].id),'str|*|str')
                  //修过程问题单的大表数据
                  this.zeroKilometersData[this.zeroKilometersScope.$index].problemType='新增问题'
                  this.zeroKilometersData[this.zeroKilometersScope.$index].problemId=this.problemData[index].id
                }, 1000) // 1000ms = 1秒
              }
          )
        }
      })
    },
    //删除一个零公里问题库中的数据（过程问题，不止是在0公里）
    zeroKilometerDeleteDeleteOk(){
      this.editZeroKilometersField(this.zeroKilometersFrom.id,'deleteSign','0','str').then(()=>{
        //修改数据
        this.zeroKilometersData.splice(this.zeroKilometersScope.$index,1)
      })
    },
    //调动查看关联问题
    problemZeroKilometerShow(scope){
      //根据id，向后端，根据id进行筛选问题库数据，
      if (scope.row.problemId===null || scope.row.problemId===undefined || scope.row.problemId===''){
        this.$message.error('未关联问题')
      }else {
        this.inquiryProblemById(scope.row.problemId)
        this.problemSolvingDrawer=true
      }
    },
    //添加、编辑零公里问题弹窗的确定按钮（是添加清单，不是关联问题的）
    zeroKilometersEdit(){
      this.zeroKilometersData=[]
      //向过程问题数据表中写入一个一行数据,是新增
      if (this.zeroKilometersDoe===1){
        this.inertZeroKilometersOne(this.zeroKilometersFrom).then(()=>{
          setTimeout(() => {
            if (this.buttonDoe===4){
              this.inquiryOneFieldZeroKilometers('typeUse','零公里')
            }
            else if (this.buttonDoe===5){
              this.inquiryOneFieldZeroKilometers('typeUse','市场问题')
            }
            else if (this.buttonDoe===6){
              this.inquiryOneFieldZeroKilometers('typeUse','工程内问题')
            }
          }, 1000) // 1000ms = 1秒
        })
        this.zeroKilometersEditDialog=false
      }
      //是修改一记录
      else if (this.zeroKilometersDoe===4){
        console.log(this.zeroKilometersData)
        this.$request.post('/editZeroKilometersOneAllByIdProblemManagement',this.zeroKilometersFrom).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            this.$message.success('修改成功')
            if (this.buttonDoe===4){
              this.inquiryOneFieldZeroKilometers('typeUse','零公里')
            }
            else if (this.buttonDoe===5){
              this.inquiryOneFieldZeroKilometers('typeUse','市场问题')
            }
            else if (this.buttonDoe===6){
              this.inquiryOneFieldZeroKilometers('typeUse','工程内问题')
            }
            this.zeroKilometersEditDialog=false
          }
        })
      }
    },
    //编辑一项IPTV报告的显示函数
    editIPTVReportShow(doe,scope){
      this.iptvReportDoe=doe
      if (doe===1){
        //是要打开显示数据
        this.titleUse='您正在准备编辑报告'
        this.iptvReportShowDialog=true
      }
      // 是要编辑一条IPTV信息
      else if (doe===2){
        this.titleUse1='您正在修改一条报告数据'
        //复制数据
        this.iptvReportFrom=scope.row
        this.iptvReportScope=scope
        this.iptvReportDialog=true
      }
      // 是进行增加一项
      else if (doe===3){
        this.titleUse1='您正在修改一条报告数据'
        this.iptvReportFrom={
          id:null,//主键
          establishTime:'',//创建时间
          updateTime:'',//修改时间
          deleteSign:"1",//删除标记
          editName:this.useName+'/'+this.useId,//编辑人
          //指标类型
          indicatorType:'',
          //统计年份
          yearData:'',
          //统计月份
          moonDate:'',
          //机型
          engineType:'',
          //统计指标名称
          targetName:'',
          //年度目标
          yearTargetVal:'',
          //本月度发生数量
          moonNumber:'',
          //本月样本量
          moonSample:'',
          //月度目标
          moonTargetVal:'',
          //月度达成
          moonAchieve:'',
          //累计目标值
          addUpTargetVal:'',
          //累计达成值
          addUpAchieve:'',
          //月度达成比例
          moonAchieveRatio:'',
          //年度达成比例
          yearAchieveRatio:'',
          //是否达成
          isAchieve:'',
          //达成趋势
          achieveTrend:'',
          //关联考核问题
          examNumb:'',
          //总结信息
          information:'',
        }
        this.iptvReportDialog=true
      }

    },
    //编辑一项IPTV报告，点击确定的函数
    iptvReportEditOk(){
      //数据校核
      if (this.iptvReportFrom.yearData==='' || this.iptvReportFrom.yearData===null || this.iptvReportFrom.yearData===undefined){
        this.$message.error('请选择统计年份')
        return;
      }
      if (this.iptvReportFrom.moonDate==='' || this.iptvReportFrom.moonDate===null || this.iptvReportFrom.moonDate===undefined){
        this.$message.error('请选择统计月份')
        return;
      }
      if (this.iptvReportFrom.engineType==='' || this.iptvReportFrom.engineType===null || this.iptvReportFrom.engineType===undefined){
        this.$message.error('请选择统计机型')
        return;
      }
      if (this.iptvReportFrom.targetName==='' || this.iptvReportFrom.targetName===null || this.iptvReportFrom.targetName===undefined){
        this.$message.error('请选择统计指标名称')
        return;
      }
      if (this.iptvReportFrom.yearTargetVal==='' || this.iptvReportFrom.yearTargetVal===null || this.iptvReportFrom.yearTargetVal===undefined){
        this.$message.error('年度目标数据未填写')
        return;
      }
      if (this.iptvReportFrom.yearTargetVal==='' || this.iptvReportFrom.yearTargetVal===null || this.iptvReportFrom.yearTargetVal===undefined){
        this.$message.error('年度目标数据未填写')
        return;
      }
      if (this.iptvReportFrom.moonTargetVal==='' || this.iptvReportFrom.moonTargetVal===null || this.iptvReportFrom.moonTargetVal===undefined){
        this.$message.error('月度目标数据未填写')
        return;
      }
      if (!this.isValidNumber(this.iptvReportFrom.yearAchieveRatio)){
        this.$message.error('您输入的年度达成比例不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.moonAchieveRatio)){
        this.$message.error('您输入的月度达成比例不正确')
        return
      }
      else if(!this.isValidNumber(this.iptvReportFrom.addUpAchieve)){
        this.$message.error('您输入的累计达成值不正确')
        return
      }
      else if(!this.isValidNumber(this.iptvReportFrom.addUpTargetVal)){
        this.$message.error('您输入的累计目标值不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.moonAchieve)){
        this.$message.error('您输入的月度达成不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.moonTargetVal)){
        this.$message.error('您输入的月度目标不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.moonSample)){
        this.$message.error('您输入月度样本量不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.moonNumber)){
        this.$message.error('您输入的月度数量不正确')
        return
      }
      else if (!this.isValidNumber(this.iptvReportFrom.yearTargetVal)){
        this.$message.error('您输入的年度目标不正确')
        return
      }
      //向后端写程序,插入一行
      if (this.iptvReportDoe===3){
        this.$request.post('/insertOneIptvReportProblemManagement',this.iptvReportFrom).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            this.$message.success('插入成功')
            this.iptvReportDialog=false
            //重新查询数据，并且组合IPTV报告数据
            this.inquiryZeroKilometersAll().then(()=>{
              //筛选数据，零公里
              this.zeroKilometer=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='零公里')
              //筛选数据，IPTV3
              this.iptv3ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV3')
              //筛选数据，IPTV12
              this.iptv12ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV12')
            })
          }
        })
      }
      if (this.iptvReportDoe===2){
        //根据id，修改IptvReport中所有的数据
        this.$request.post('/editOneLineIptvReportProblemManagement',this.iptvReportFrom).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          } else {
            this.$message.success('修改成功')
            this.iptvReportDialog=false
            //重新查询数据，并且组合IPTV报告数据
            this.inquiryZeroKilometersAll().then(()=>{
              //筛选数据，零公里
              this.zeroKilometer=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='零公里')
              //筛选数据，IPTV3
              this.iptv3ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV3')
              //筛选数据，IPTV12
              this.iptv12ReportData=this.iptvReportDataShow.filter(item=> item.yearData===this.yearSelect && item.moonDate===this.moonSelect && item.targetName==='IPTV12')
            })
          }
        })
      }
    },
    //点击IPTV报告的关联问题，弹出一个对应的弹窗，供用户选择问题,需要关联不同的部位的内容
    iptvReportAssociation(){
      //判断是不是指定了某一个
      if (this.iptvReportFrom.targetName==='零公里'){
        this.titleUse1='正在关联零公里问题'
        //筛选所有零公里的问题
        this.inquiryOneFieldZeroKilometers('typeUse','零公里').then(()=>{
          this.iptvReportProblemRelationDialog=true
        })

      }
      else if (this.iptvReportFrom.targetName==='IPTV3' || this.iptvReportFrom.targetName==='IPTV6' || this.iptvReportFrom.targetName==='IPTV12' || this.iptvReportFrom.targetName==='IPTV24' || this.iptvReportFrom.targetName==='IPTV36'){
        this.titleUse1='正在关联'+this.iptvReportFrom.targetName+'问题'
        this.iptvReportProblemRelationDialog=true
      }

    },
    //点击IPTV报告的关联问题，弹出一个对应的弹窗，在窗口上选择好数据后，点击确定
    iptvReportProblemRelationOk(){
      let examNumb=''
      for (let i = 0; i < this.iptvReportProblemRelation.length; i++) {
        if (i===0){
          examNumb=this.iptvReportProblemRelation[i].id
        }
        else {
          examNumb=examNumb+'/'+this.iptvReportProblemRelation[i].id
        }
      }
      this.iptvReportFrom.examNumb=this.iptvReportFrom.targetName+'/'+examNumb
      this.iptvReportProblemRelationDialog=false
    },
    //点击修改是否需要返回故障件的信息
    isBackShow(scope){
      this.warrantyClaimScope=scope
      this.warrantyClaimFrom=_.cloneDeep(scope.row)
      this.warrantyClaimEditIsBackDialog=true
    },
    //点击修改是否需要返回故障件的信息中的确定按钮的函数
    warrantyClaimEditIsBack(){
      //向后端写入数据
      let filedName='isBack/backName/backProposeDate/backRUSEngineDate/backRUSEngineName/isBackChina/backCNDate/backCNName'
      let filedVal= this.warrantyClaimFrom.isBack+'/'+
          this.warrantyClaimFrom.backName+'/'+
          this.warrantyClaimFrom.backProposeDate+'/'+
          this.warrantyClaimFrom.backRUSEngineDate+'/'+
          this.warrantyClaimFrom.backRUSEngineName+'/'+
          this.warrantyClaimFrom.isBackChina+'/'+
          this.warrantyClaimFrom.backCNDate+'/'+
          this.warrantyClaimFrom.backCNName
      let filedType = 'str/str/str/str/str/str/str/str'
      this.editWarrantyClaimField(this.warrantyClaimFrom.id,filedName,filedVal,filedType)
      this.warrantyClaimEditIsBackDialog=false
    },
    //通用函数，修改一个变量，就是一个富文本内容，或者是一个文本项目。别的都没有
    generalEditText(doe,scope){
      this.textTypeUse=doe
      //是修改索赔单中调查信息，使用的富文本项目
      if (doe===1){
        this.warrantyClaimFrom=scope.row
        this.warrantyClaimScope=scope
        this.editProblemItem='您正在编辑调查信息-索赔单项目'
        this.generalFullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(scope.row.investigate)
        })
      }
      //是修改过程问题中的信息，使用富文本项目
      else if(doe===2){
        this.zeroKilometersFrom=_.cloneDeep(scope.row)
        this.zeroKilometersScope=scope
        this.editProblemItem='您正在编辑调查信息-过程问题清单项目'
        this.generalFullTextDialog=true
        this.$nextTick(() => {
          this.initEditor();
          this.editor.txt.html(scope.row.investigate)
        })
      }
    },
    //在通用的修改一个富文本中个，点击了确定按钮的反应，用在了在索赔信息、过程问题清单中的信息编辑
    generalEidtTextOk(){
      //修改一个索赔单中调查信息
      if (this.textTypeUse===1){
        //对索赔单进行修改，修改一个字段
        this.editWarrantyClaimField(this.warrantyClaimFrom.id,'investigate',this.editor.txt.html(),'str').then(()=>{
          this.warrantyClaimFrom.investigate=this.editor.txt.html()
          //修改原始表数据
          this.warrantyClaimData.splice(this.warrantyClaimScope.$index,1,this.warrantyClaimFrom)
          this.generalFullTextDialog=false
        })
      }
      //修改一个过程清单中的调查信息
      else if(this.textTypeUse===2){
        console.log(this.editor.txt.html(),"测试")
        //对过程问题清单中，根据ID，修改一个字段的内容
        this.editZeroKilometersField(this.zeroKilometersFrom.id,'investigate',this.editor.txt.html(),'str').then(()=>{
          this.zeroKilometersFrom.investigate=this.editor.txt.html()
          //修改原始数据
          this.zeroKilometersData.splice(this.zeroKilometersScope.$index,1,this.zeroKilometersFrom)
          this.generalFullTextDialog=false
        })
      }
    },
    //辅助函数，对零公里的清单中（记录的不是零公里，是所有的问题），筛选出所有的数据
    async inquiryZeroKilometersAll(){
      this.$request.post('inquiryZeroKilometersAllProblemManagement').then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.zeroKilometersData=result.data
        }
      })
    },
    //辅助函数，对零公里清单中（记录的不是零公里，是所有的问题），根据一个字段，查询等于该字段的所有数据,是字符串的
    async inquiryOneFieldZeroKilometers(fieldName,fieldVal){
      this.zeroKilometersData=[]
      this.$request.post('inquiryOneFieldZeroKilometersProblemManagement',{
        fieldName:fieldName,
        fieldVal:fieldVal
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.zeroKilometersData=result.data
        }
      })
    },
    //辅助函数，对零公里清单中（记录的不是零公里，是所有的问题），根据一个字段，查询等于该字段的所有数据,是整数型的，主要用于int
    async inquiryOneFieldZeroKilometersInt(fieldName, fieldVal) {
      return new Promise((resolve, reject) => {
        this.$request.post('inquiryOneFieldZeroKilometersIntProblemManagement', {
          fieldName: fieldName,
          fieldVal: fieldVal
        }).then(result => {
          if (result.code === 401) {
            this.$router.push('UserLogin');
            alert("您未登录，请登录");
            reject("未登录"); // 返回错误信息
          } else {
            resolve(result.data); // 返回数据
          }
        }).catch(error => {
          reject(error); // 捕获请求错误
        });
      });
    },
    //辅助函数，对零公里清单中（记录的不是零公里，是所有的问题），插入一行数据
    async inertZeroKilometersOne(val){
      //
      this.$request.post('inertZeroKilometersOneProblemManagement',val).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('插入成功')
        }
      })
    },
    //辅助函数，对零公里清单中（记录的不是零公里，是所有的问题），根据id，修改一行的多个字段，每个字段用’|*|‘隔开，内容同样用’|*|‘隔开，类型也用’|*|'隔开
    async editZeroKilometersField(id,filedName,filedVal,filedType){
      this.$request.post('editZeroKilometersFieldProblemManagement',{
        id:id,
        filedName:filedName,
        filedVal:filedVal,
        filedType:filedType
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数，对零公里清单中（记录的不是零公里，是所有的问题），修改一行所有的数据
    editZeroKilometersOneAllById(val){
      this.$request.post('/editZeroKilometersOneAllByIdProblemManagement',val).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数，查询出所有的售后索赔单
    inquiryWarrantyClaimAll(){
      this.warrantyClaimData=[]
      this.$request.post("/inquiryWarrantyClaimAllProblemManagement").then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.warrantyClaimData=result.data
          this.warrantyClaimDataShow=result.data
        }
      })
    },
    //辅助函数，在索赔单中，查询出用户指定的IPTV类型，通过一个IPTV类型，找到所有不为空的数据
    inquiryWarrantyClaimOneFiledNoVoid(filedName){
      this.warrantyClaimData=[]
      this.$request.post('/inquiryWarrantyClaimOneFiledNoVoidProblemManagement',filedName).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.warrantyClaimData=result.data
        }
      })
    },
    //辅助函数，在索赔单中，查询出用户指定的IPTV类型，指定的月份的数据，采用的是一个字段，等于多个值的方法,值需要用’/‘隔开，查询的都是字符串
    inquiryWarrantyClaimOneFiledSeveral(filedName,filedVal){
      this.warrantyClaimData=[]
      this.$request.post('/inquiryWarrantyClaimOneFiledSeveralProblemManagement',{
        filedName:filedName,
        filedVal:filedVal
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.warrantyClaimData=result.data
        }
      })
    },
    //辅助函数，在索赔单中，根据一个字段，查询出这个字段等于某一个值或者多个字的数据，值需要用’/‘隔开，用在查询int格式上
    async inquiryWarrantyClaimOneFiledSeveralInt(filedName,filedVal){
      return new Promise((resolve, reject) => {
        this.$request.post('/inquiryWarrantyClaimOneFiledSeveralIntProblemManagement',{
          filedName:filedName,
          filedVal:filedVal
        }).then(result => {
          if (result.code === 401) {
            this.$router.push('UserLogin');
            alert("您未登录，请登录");
            reject("未登录"); // 返回错误信息
          } else {
            resolve(result.data); // 返回数据
          }
        }).catch(error => {
          reject(error); // 捕获请求错误
        });
      });
    },
    //辅助函数，在索赔单中，根据一个字段，查询这个字段的一个范围,用在查询字符串类型的，主要用在了查询文本格式保存的时间上
    async inquiryWarrantyClaimOneFiledScopeStr(filedName,minVal,maxVal){
      return new Promise((resolve, reject) => {
        this.$request.post('/inquiryWarrantyClaimOneFiledScopeStrProblemManagement',{
          filedName:filedName,
          minVal:minVal,
          maxVal:maxVal,
        }).then(result => {
          if (result.code === 401) {
            this.$router.push('UserLogin');
            alert("您未登录，请登录");
            reject("未登录"); // 返回错误信息
          } else {
            resolve(result.data); // 返回数据
          }
        }).catch(error => {
          reject(error); // 捕获请求错误
        });
      });
    },
    //辅助函数，对售后索赔单的字段进行修改，根据id，修改多个字段，字段名称需要按照‘/’隔开，val也是一样的，并且需要和字段对应;type同样需要对应
    async editWarrantyClaimField(id,filedName,filedVal,filedType){
      this.$request.post('editWarrantyClaimFieldProblemManagement',{
        id:id,
        filedName:filedName,
        filedVal:filedVal,
        filedType:filedType
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数，根据id，向后端进行筛选问题库的数据
    async inquiryProblemById(id){
      this.problemDataForm={}
      this.$request.post('inquiryProblemByIdProblemManagement',{
        id:id,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          if (result.data===null || result.data===undefined || result.data===''){
            this.$message.error('问题已不存在')
          } else {
            this.problemDataForm=result.data
          }
        }
      })
    },
    //辅助函数,批量的对索赔问题进行插入行
    async insertWarrantyList(warrantyList){
      //向后端传输数据
      this.$request.post('/insertWarrantyListProblemManagement',warrantyList).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('批量插入成功')
        }
      })
    },
    //辅助函数：对问题库进行查询操作，最多可以十个字段，都是相等。六个字段是字符串，两个字段是数字型， 以及两个字段，是选取区间的
    inquiryProblem(firstFiledName,firstFiledVal,secondFiledName,secondFiledVal){
      this.$request.post('/inquiryProblemOneFiledWorkExceptionRemoval',{
        firstFiledName:firstFiledName,
        firstFiledVal:firstFiledVal,
        secondFiledName:secondFiledName,
        secondFiledVal:secondFiledVal,
      })
          .then(result=>{
            if (result.code === 401) {
              this.$router.push('UserLogin')
              alert("您未登录，请登录")
            } else {
              this.problemData=result.data
            }
          })

    },
    //辅助函数：对问题库进行查询，同一个字段，它的值等于某一个值，或者某n个值(是查询字符串）
    async inquiryProblemOneFindSeveralVal(fieldName,firstFiledVal,secondFiledVal,threeFiledVal,fourthFiledVal,fifthFiledVal){
      this.$request.post('/inquiryProblemOneFindSeveralValProblemNew',{
        filedName:fieldName,
        firstFiledVal:firstFiledVal,
        secondFiledVal:secondFiledVal,
        threeFiledVal:threeFiledVal,
        fourthFiledVal:fourthFiledVal,
        fifthFiledVal:fifthFiledVal,
      })
          .then(result=>{
            if (result.code === 401) {
              this.$router.push('UserLogin')
              alert("您未登录，请登录")
            } else {
              //对数据按照零部件名称排序
              this.problemData= result.data.sort((a, b) =>
                  b.drawing.localeCompare(a.drawing)
              )
              this.problemDataCopy= result.data.sort((a, b) =>
                  b.drawing.localeCompare(a.drawing)
              )
            }
          })
    },
    //辅助函数：对问题库一行的数据都进行修改
    editOneAllProblem(from){
      //向后端发送请求
      this.$request.post('/editOneAllProblemWorkException',from).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数：对问题库，修改一个字段，是字符串
    editOneFiledProblemStr(filedName,filedVal,id){
      //向后端发送请求
      this.$request.post('/editOneFiledStrProblemWorkException',{
        filedName:filedName,
        filedVal:filedVal,
        id:id,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数：对问题库，修改一个字段，是数字
    editOneFiledProblemInt(filedName,filedVal,id){
      //向后端发送请求
      this.$request.post('/editOneFiledIntProblemWorkException',{
        filedName:filedName,
        filedVal:filedVal,
        id:id,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数：  初始化 wangEditor
    initEditor() {
      // 检查是否已经存在编辑器实例
      if (this.editor) {
        return; // 如果已经存在，则直接返回，不重复初始化
      }
      this.editor = new E(this.$refs.editorContainer);
      this.editor.config.menus = [
        'head',
        'bold',
        'italic',
        'underline',
        'strikeThrough',
        'foreColor',
        'backColor',
        'list',
        'justify',
        'table',
        // 其他你需要的菜单...
      ]
      this.editor.create();
    },
    //辅助函数：对报警/异常问题库的一个行的某一个字段进行修改,修改的值是数字，修改后，只反馈一个保存成功；大表赋值，在主函数中完成
    editOneFiledExceptionDataInt(firstFiledName,firstFiledVal,id){
      this.$request.post('/editOneFiledExceptionDataIntRemoval',{
        id:id,
        firstFiledName:firstFiledName,
        firstFiledVal:firstFiledVal,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('关联成功')
        }
      })
    },
    //辅助函数：对零部件信息进行调用,调用所有的信息
    inquiryProductListBaseComponentAll(){
      this.$request.post('/inquiryProductListBaseComponentAll').then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.productModelList=result.data
          //整理出来选择器
          this.productModelListOption=[]
          for (let i = 0; i < this.productModelList.length; i++) {
            let temp={
              label:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
              value:this.productModelList[i].cpxh+'/'+this.productModelList[i].lbjmc_C+'/'+this.productModelList[i].lbjmc_E+'/'+this.productModelList[i].lbjmc_R+'/'+this.productModelList[i].sccj,
            }
            this.productModelListOption.push(temp)
          }
          // 最后，更新 productModelListOption 数组，消除重复项
          this.productModelListOption = [...new Set(this.productModelListOption.map(item => JSON.stringify(item)))]
              .map(itemString => JSON.parse(itemString));
        }
      })
    },
    //辅助函数，对IPTV进行计算，用在了对于索赔单的计算
    countIPTV(){
      let IPTV=null
      for (let i = 0; i < this.warrantyClaimData.length; i++) {
        if (this.warrantyClaimData[i].warrantyStartingDate!==''  && this.warrantyClaimData[i].warrantyStartingDate!==undefined && this.warrantyClaimData[i].warrantyStartingDate!==null){
          let productionYear=this.warrantyClaimData[i].warrantyStartingDate.substring(0,4)
          let productionMoon=this.warrantyClaimData[i].warrantyStartingDate.substring(5,7)
          let repairCompleteYear=this.warrantyClaimData[i].repairCompletedDate.substring(0,4)
          let repairCompleteNoon=this.warrantyClaimData[i].repairCompletedDate.substring(5,7)
          if (productionYear===repairCompleteYear){
            if (repairCompleteNoon-productionMoon<3){
              IPTV=this.nowIPTV3(productionYear,productionMoon)
            }
            else if (repairCompleteNoon-productionMoon<6){
              IPTV=this.nowIPTV6(productionYear,productionMoon)
            }
            else if (repairCompleteNoon-productionMoon<12){
              IPTV=this.nowIPTV12(productionYear,productionMoon)
            }
            else if (repairCompleteNoon-productionMoon<24){
              IPTV=this.nowIPTV24(productionYear,productionMoon)
            }
            else if (repairCompleteNoon-productionMoon<36){
              IPTV=this.nowIPTV36(productionYear,productionMoon)
            }
          }
          else if (repairCompleteYear-productionYear===1){
            let OneYearMoon= Number(repairCompleteNoon)+12
            if (OneYearMoon-productionMoon<3){
              IPTV=this.nowIPTV3(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<6){
              IPTV=this.nowIPTV6(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<12){
              IPTV=this.nowIPTV12(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<24){
              IPTV=this.nowIPTV24(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<36){
              IPTV=this.nowIPTV36(productionYear,productionMoon)
            }
          }
          else if (repairCompleteYear-productionYear===2){
            let OneYearMoon= Number(repairCompleteNoon)+24
            if (OneYearMoon-productionMoon<3){
              IPTV=this.nowIPTV3(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<6){
              IPTV=this.nowIPTV6(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<12){
              IPTV=this.nowIPTV12(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<24){
              IPTV=this.nowIPTV24(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<36){
              IPTV=this.nowIPTV36(productionYear,productionMoon)
            }
          }
          else if (repairCompleteYear-productionYear===3){
            let OneYearMoon= Number(repairCompleteNoon)+36
            if (OneYearMoon-productionMoon<3){
              IPTV=this.nowIPTV3(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<6){
              IPTV=this.nowIPTV6(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<12){
              IPTV=this.nowIPTV12(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<24){
              IPTV=this.nowIPTV24(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<36){
              IPTV=this.nowIPTV36(productionYear,productionMoon)
            }
          }
          else if (repairCompleteYear-productionYear===4){
            let OneYearMoon= Number(repairCompleteNoon)+48
            if (OneYearMoon-productionMoon<3){
              IPTV=this.nowIPTV3(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<6){
              IPTV=this.nowIPTV6(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<12){
              IPTV=this.nowIPTV12(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<24){
              IPTV=this.nowIPTV24(productionYear,productionMoon)
            }
            else if (OneYearMoon-productionMoon<36){
              IPTV=this.nowIPTV36(productionYear,productionMoon)
            }
          }
        }
        else {
          IPTV= {IPTV3: '', IPTV6: '', IPTV12: '', IPTV24: '', IPTV36: ''}
        }
        //给主数据表进行赋值
        if (IPTV!=null){
          this.warrantyClaimData[i].IPTV3=IPTV.IPTV3
          this.warrantyClaimData[i].IPTV6=IPTV.IPTV6
          this.warrantyClaimData[i].IPTV12=IPTV.IPTV12
          this.warrantyClaimData[i].IPTV24=IPTV.IPTV24
          this.warrantyClaimData[i].IPTV36=IPTV.IPTV36
        }
      }
    },
    //辅助子函数：计算影响IPTV3的月份，因为是IPTV3，后面的都影响
    nowIPTV3(productionYear,productionMoon){
      //计算影响的IPTV3的月份
      let moonTemp3=Number(productionMoon)+2
      let yearTemp3=Math.floor(moonTemp3 / 12)
      let IPTV3
      if (moonTemp3===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (moonTemp3 % 12===0){
        IPTV3=String(Number(productionYear)+yearTemp3-1)+String(Number(moonTemp3) - yearTemp3 * 12+12).padStart(2, '0')
      }
      else {
        IPTV3=String(Number(productionYear)+yearTemp3)+String(Number(moonTemp3) - yearTemp3 * 12).padStart(2, '0')
      }

      //计算影响IPTV6的月份
      let moonTemp6=Number(productionMoon)+5
      let yearTemp6=Math.floor(moonTemp6 / 12)
      let IPTV6
      if (moonTemp6===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (moonTemp6 % 12===0){
        IPTV6=String(Number(productionYear)+yearTemp6-1)+String(Number(moonTemp6) - yearTemp6 * 12+12).padStart(2, '0')
      }
      else {
        IPTV6=String(Number(productionYear)+yearTemp6)+String(Number(moonTemp6) - yearTemp6 * 12).padStart(2, '0')
      }

      //计算影响IPTV12的月份
      let moonTemp12=Number(productionMoon)+11
      let yearTemp12=Math.floor(moonTemp12 / 12)
      let IPTV12
      if (moonTemp12===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV12 % 12===0){
        IPTV12=String(Number(productionYear)+yearTemp12-1)+String(Number(moonTemp12) - yearTemp12 * 12+12).padStart(2, '0')
      }
      else {
        IPTV12=String(Number(productionYear)+yearTemp12)+String(Number(moonTemp12) - yearTemp12 * 12).padStart(2, '0')
      }

      //计算影响IPTV24的月份
      let moonTemp24=Number(productionMoon)+23
      let yearTemp24=Math.floor(moonTemp24 / 12)
      let IPTV24
      if (IPTV24===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV24 % 12===0){
        IPTV24=String(Number(productionYear)+yearTemp24-1)+String(Number(moonTemp24) - yearTemp24 * 12+12).padStart(2, '0')
      }
      else {
        IPTV24=String(Number(productionYear)+yearTemp24)+String(Number(moonTemp24) - yearTemp24 * 12).padStart(2, '0')
      }

      //计算影响IPTV36的月份
      let moonTemp36=Number(productionMoon)+35
      let yearTemp36=Math.floor(moonTemp36 / 12)
      let IPTV36
      if (IPTV36===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV36 % 12===0){
        IPTV36=String(Number(productionYear)+yearTemp36-1)+String(Number(moonTemp36) - yearTemp36 * 12+12).padStart(2, '0')
      }
      else {
        IPTV36=String(Number(productionYear)+yearTemp36)+String(Number(moonTemp36) - yearTemp36 * 12).padStart(2, '0')
      }
      return {IPTV3: IPTV3, IPTV6: IPTV6, IPTV12: IPTV12, IPTV24: IPTV24, IPTV36: IPTV36}
    },
    //辅助子函数：计算印象IPTV6的月份，因为是IPTV6，后面的都印象
    nowIPTV6(productionYear,productionMoon){
      //计算影响IPTV6的月份
      let moonTemp6=Number(productionMoon)+5
      let yearTemp6=Math.floor(moonTemp6 / 12)
      let IPTV6
      if (moonTemp6===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (moonTemp6 % 12===0){
        IPTV6=String(Number(productionYear)+yearTemp6-1)+String(Number(moonTemp6) - yearTemp6 * 12+12).padStart(2, '0')
      }
      else {
        IPTV6=String(Number(productionYear)+yearTemp6)+String(Number(moonTemp6) - yearTemp6 * 12).padStart(2, '0')
      }

      //计算影响IPTV12的月份
      let moonTemp12=Number(productionMoon)+11
      let yearTemp12=Math.floor(moonTemp12 / 12)
      let IPTV12
      if (moonTemp12===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV12 % 12===0){
        IPTV12=String(Number(productionYear)+yearTemp12-1)+String(Number(moonTemp12) - yearTemp12 * 12+12).padStart(2, '0')
      }
      else {
        IPTV12=String(Number(productionYear)+yearTemp12)+String(Number(moonTemp12) - yearTemp12 * 12).padStart(2, '0')
      }

      //计算影响IPTV24的月份
      let moonTemp24=Number(productionMoon)+23
      let yearTemp24=Math.floor(moonTemp24 / 12)
      let IPTV24
      if (IPTV24===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV24 % 12===0){
        IPTV24=String(Number(productionYear)+yearTemp24-1)+String(Number(moonTemp24) - yearTemp24 * 12+12).padStart(2, '0')
      }
      else {
        IPTV24=String(Number(productionYear)+yearTemp24)+String(Number(moonTemp24) - yearTemp24 * 12).padStart(2, '0')
      }

      //计算影响IPTV36的月份
      let moonTemp36=Number(productionMoon)+35
      let yearTemp36=Math.floor(moonTemp36 / 12)
      let IPTV36
      if (IPTV36===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV36 % 12===0){
        IPTV36=String(Number(productionYear)+yearTemp36-1)+String(Number(moonTemp36) - yearTemp36 * 12+12).padStart(2, '0')
      }
      else {
        IPTV36=String(Number(productionYear)+yearTemp36)+String(Number(moonTemp36) - yearTemp36 * 12).padStart(2, '0')
      }
      return {IPTV3: '', IPTV6: IPTV6, IPTV12: IPTV12, IPTV24: IPTV24, IPTV36: IPTV36}
    },
    //辅助子函数：计算印象IPTV12的月份，因为是IPTV12，后面的都印象
    nowIPTV12(productionYear,productionMoon){
      //计算影响IPTV12的月份
      let moonTemp12=Number(productionMoon)+11
      let yearTemp12=Math.floor(moonTemp12 / 12)
      let IPTV12
      if (moonTemp12===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV12 % 12===0){
        IPTV12=String(Number(productionYear)+yearTemp12-1)+String(Number(moonTemp12) - yearTemp12 * 12+12).padStart(2, '0')
      }
      else {
        IPTV12=String(Number(productionYear)+yearTemp12)+String(Number(moonTemp12) - yearTemp12 * 12).padStart(2, '0')
      }

      //计算影响IPTV24的月份
      let moonTemp24=Number(productionMoon)+23
      let yearTemp24=Math.floor(moonTemp24 / 12)
      let IPTV24
      if (IPTV24===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV24 % 12===0){
        IPTV24=String(Number(productionYear)+yearTemp24-1)+String(Number(moonTemp24) - yearTemp24 * 12+12).padStart(2, '0')
      }
      else {
        IPTV24=String(Number(productionYear)+yearTemp24)+String(Number(moonTemp24) - yearTemp24 * 12).padStart(2, '0')
      }

      //计算影响IPTV36的月份
      let moonTemp36=Number(productionMoon)+35
      let yearTemp36=Math.floor(moonTemp36 / 12)
      let IPTV36
      if (IPTV36===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV36 % 12===0){
        IPTV36=String(Number(productionYear)+yearTemp36-1)+String(Number(moonTemp36) - yearTemp36 * 12+12).padStart(2, '0')
      }
      else {
        IPTV36=String(Number(productionYear)+yearTemp36)+String(Number(moonTemp36) - yearTemp36 * 12).padStart(2, '0')
      }
      return {IPTV3: '', IPTV6:'', IPTV12: IPTV12, IPTV24: IPTV24, IPTV36: IPTV36}
    },
    //辅助子函数：计算印象IPTV24的月份，因为是IPTV24，后面的都印象
    nowIPTV24(productionYear,productionMoon){
      //计算影响IPTV24的月份
      let moonTemp24=Number(productionMoon)+23
      let yearTemp24=Math.floor(moonTemp24 / 12)
      let IPTV24
      if (IPTV24===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV24 % 12===0){
        IPTV24=String(Number(productionYear)+yearTemp24-1)+String(Number(moonTemp24) - yearTemp24 * 12+12).padStart(2, '0')
      }
      else {
        IPTV24=String(Number(productionYear)+yearTemp24)+String(Number(moonTemp24) - yearTemp24 * 12).padStart(2, '0')
      }

      //计算影响IPTV36的月份
      let moonTemp36=Number(productionMoon)+35
      let yearTemp36=Math.floor(moonTemp36 / 12)
      let IPTV36
      if (IPTV36===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV36 % 12===0){
        IPTV36=String(Number(productionYear)+yearTemp36-1)+String(Number(moonTemp36) - yearTemp36 * 12+12).padStart(2, '0')
      }
      else {
        IPTV36=String(Number(productionYear)+yearTemp36)+String(Number(moonTemp36) - yearTemp36 * 12).padStart(2, '0')
      }
      return {IPTV3: '', IPTV6:'', IPTV12: '', IPTV24: IPTV24, IPTV36: IPTV36}
    },
    //辅助子函数：计算印象IPTV36的月份，因为是IPTV36，后面的都印象
    nowIPTV36(productionYear,productionMoon){
      //计算影响IPTV36的月份
      let moonTemp36=Number(productionMoon)+35
      let yearTemp36=Math.floor(moonTemp36 / 12)
      let IPTV36
      if (IPTV36===0){
        this.$message.error('程序有异常，请联系管理员')
        return
      }
      if (IPTV36 % 12===0){
        IPTV36=String(Number(productionYear)+yearTemp36-1)+String(Number(moonTemp36) - yearTemp36 * 12+12).padStart(2, '0')
      }
      else {
        IPTV36=String(Number(productionYear)+yearTemp36)+String(Number(moonTemp36) - yearTemp36 * 12).padStart(2, '0')
      }
      return {IPTV3: '', IPTV6:'', IPTV12: '', IPTV24: '', IPTV36: IPTV36}
    },
    //辅助函数：调取所有的不良品信息
    inquiryNoGoodPartAll(){
      //向后端发送信息
      this.$request.post('/inquiryNoGoodPartAllProblemManagement').then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          const cutoffDate = '2025-04-01 00:00:00'

          // 先过滤掉 create_time 小于 cutoffDate 的元素
          result.data = result.data.filter(item => item.create_time >= cutoffDate);
          // 然后对过滤后的数组进行排序
          result.data.sort((a, b) => new Date(b.create_time) - new Date(a.create_time));

          // 将排序后的数组赋值给 this.noGoodPartAssData
          this.noGoodPartAssData = result.data;
          //处理开票日期的数据，去掉时分秒
          for (let i = 0; i < this.noGoodPartAssData.length; i++) {
            this.noGoodPartAssData[i].create_time=this.noGoodPartAssData[i].create_time.substring(0, 10)
          }
        }
      })
    },
    //辅助函数：对IPTV报告进行筛选，给表单赋值，并且判断是什么类型
    async iptvReportFromCont() {
      if (this.iptvReportFrom.yearData !== '' && this.iptvReportFrom.yearData !== null && this.iptvReportFrom.yearData !== undefined) {
        if (this.iptvReportFrom.moonDate !== '' && this.iptvReportFrom.moonDate !== null && this.iptvReportFrom.moonDate !== undefined) {
          if (this.iptvReportFrom.engineType !== '' && this.iptvReportFrom.engineType !== null && this.iptvReportFrom.engineType !== undefined) {
            if (this.iptvReportFrom.targetName !== '' && this.iptvReportFrom.targetName !== null && this.iptvReportFrom.targetName !== undefined) {
              let p = await this.inquiryIptvReportSeveralField('yearData/moonDate/engineType/targetName', this.iptvReportFrom.yearData + '/' + this.iptvReportFrom.moonDate + '/' + this.iptvReportFrom.engineType + '/' + this.iptvReportFrom.targetName)
              if (p === '' || p === null || p === undefined) {
                this.iptvReportDoe = 1
                //其他的要赋值为空
                this.iptvReportFrom.yearTargetVal=''
                //本月度发生数量
                this.iptvReportFrom.moonNumber=''
                //本月样本量
                this.iptvReportFrom.moonSample=''
                //月度目标
                this.iptvReportFrom.moonTargetVal=''
                //月度达成
                this.iptvReportFrom.moonAchieve=''
                //累计目标值
                this.iptvReportFrom.addUpTargetVal=''
                //累计达成值
                this.iptvReportFrom.addUpAchieve=''
                //月度达成比例
                this.iptvReportFrom.moonAchieveRatio=''
                //年度达成比例
                this.iptvReportFrom.yearAchieveRatio=''
                //是否达成
                this.iptvReportFrom.isAchieve=''
                //达成趋势
                this.iptvReportFrom.achieveTrend=''
                //关联考核问题
                this.iptvReportFrom.examNumb=''
                //总结信息
                this.iptvReportFrom.information=''
              } else {
                if (p.length === 0) {
                  this.iptvReportDoe = 1
                  //其他的要赋值为空
                  this.iptvReportFrom.yearTargetVal=''
                  //本月度发生数量
                  this.iptvReportFrom.moonNumber=''
                  //本月样本量
                  this.iptvReportFrom.moonSample=''
                  //月度目标
                  this.iptvReportFrom.moonTargetVal=''
                  //月度达成
                  this.iptvReportFrom.moonAchieve=''
                  //累计目标值
                  this.iptvReportFrom.addUpTargetVal=''
                  //累计达成值
                  this.iptvReportFrom.addUpAchieve=''
                  //月度达成比例
                  this.iptvReportFrom.moonAchieveRatio=''
                  //年度达成比例
                  this.iptvReportFrom.yearAchieveRatio=''
                  //是否达成
                  this.iptvReportFrom.isAchieve=''
                  //达成趋势
                  this.iptvReportFrom.achieveTrend=''
                  //关联考核问题
                  this.iptvReportFrom.examNumb=''
                  //总结信息
                  this.iptvReportFrom.information=''
                } else if (p.length ===1) {
                  this.iptvReportDoe = 2
                  this.iptvReportFrom = p[0]
                }
              }
            }
          }
        }
      }
    },
    //辅助函数：向后端的不良品库中写入代码，需要写入多个字段
    editNoGoodDataField(id,filedName,filedVal,filedType){
      this.$request.post('editNoGoodDataFieldProblemManagement',{
        id:id,
        filedName:filedName,
        filedVal:filedVal,
        filedType:filedType
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.$message.success('修改成功')
        }
      })
    },
    //辅助函数：对不良品库中，根据一个字段，查询这个字段等于某一值，可以等于多个值，每个值中间有‘/’隔开；配的是类型；
    inquiryNoGoodFiledSeveral(filedName,filedVal){
      //向后端请求数据
      this.$request.post('/inquiryNoGoodFiledSeveralProblemManagement',{
        filedName:filedName,
        filedVal:filedVal,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.noGoodPartAssDataShow=result.data
        }
      })
    },
    //辅助函数，关闭所有的弹窗
    closeAll(){
      this.problemAddORSelect=false
      this.problemAddORSelect1=false
      this.problemAddORSelect2=false
    },
    //辅助函数：测试是不是YYYY-MM-dd的日期格式
    isValidDate(dateString) {
      // 1. 正则表达式初步验证格式
      const regex = /^\d{4}-\d{2}-\d{2}$/;
      if (!regex.test(dateString)) return false;

      // 2. 拆分年月日
      const [year, month, day] = dateString.split('-').map(Number);

      // 3. 验证日期有效性
      const date = new Date(year, month - 1, day); // 月份从0开始计数
      return (
          date.getFullYear() === year &&
          date.getMonth() + 1 === month &&
          date.getDate() === day
      );
    },
    //辅助函数：向后端IPTV报告中筛选数据，可以实现筛选多个等段同时等于多个数值，最多可以为10个。字段名和变量都是用“/”隔开
    async inquiryIptvReportSeveralField(fieldName,fieldVal) {
      const result = await this.$request.post('/inquiryIptvReportSeveralFieldProblemManagement', {
        fieldName: fieldName,
        fieldVal: fieldVal,
      })
      if (result.code === 401) {
        // 未登录，跳转到登录页面并提示
        this.$router.push('UserLogin');
        alert("您未登录，请登录");
        throw new Error("未登录"); // 抛出错误，表明操作失败
      }
      // 成功，直接返回 result.data
      return result.data;
    },
    //辅助函数：向后端IPTV报告中查询所有的数据
    inquiryIptvReportAll(){
      //向后端查询所有的数据
      this.$request.post('/inquiryIptvReportAllProblemManagement').then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        } else {
          this.iptvReportData=result.data
          this.iptvReportDataShow=result.data
        }
      })
    },
    //对问题库中的表格单元格进行合并
    // eslint-disable-next-line no-unused-vars
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      // 仅处理第0列
      if (columnIndex === 0) {
        // 获取当前行和上一行的数据
        const currentRow = this.problemData[rowIndex];
        const prevRow = rowIndex > 0 ? this.problemData[rowIndex - 1] : null;

        // 如果是第一行，或当前行内容与上一行不同，则开始新合并
        if (rowIndex === 0 || currentRow.drawing !== prevRow.drawing) {
          // 查找连续相同内容的行数
          let mergeCount = 1;
          while (
              rowIndex + mergeCount < this.problemData.length &&
              this.problemData[rowIndex + mergeCount].drawing === currentRow.drawing
              ) {
            mergeCount++;
          }

          // 如果是合并的起始行，设置rowspan
          if (mergeCount > 1) {
            return {
              rowspan: mergeCount,
              colspan: 1
            };
          }
        } else {
          // 非起始行隐藏单元格
          return {
            rowspan: 0,
            colspan: 0
          };
        }
      }
    },
    //辅助函数：计算是不是数字
    isValidNumber(str) {
      // 正则表达式解释：
      // ^            - 字符串的开始
      // [+-]?        - 可选的正负号
      // \d*          - 零个或多个数字
      // (\.\d+)?     - 可选的小数部分，包含一个小数点和至少一个数字
      // $            - 字符串的结束
      const numberRegex = /^[+-]?\d*(\.\d+)?$/;

      // 使用正则表达式测试输入字符串
      return numberRegex.test(str);
    },
    //辅助函数：对一个区间的月底日期，形成每个月一个数据的日期
    generateMonthRange(startDateStr, endDateStr) {
      // 验证日期格式（YYYY-MM-DD且日为01）
      const validateDate = (dateStr) => {
        const regex = /^\d{4}-(0[1-9]|1[0-2])-01$/;
        return regex.test(dateStr);
      };

      if (!validateDate(startDateStr) || !validateDate(endDateStr)) {
        throw new Error('Invalid date format. Use YYYY-MM-01 format');
      }

      // 解析日期
      const start = new Date(startDateStr);
      const end = new Date(endDateStr);

      if (start > end) {
        throw new Error('Start date must be before or equal to end date');
      }

      // 计算结束日期的下个月第一天
      const nextEnd = new Date(end);
      nextEnd.setMonth(nextEnd.getMonth() + 1);

      const dates = [];
      let current = new Date(start);

      // 修改循环条件：包含到end的下个月第一天
      while (current <= nextEnd) {
        const year = current.getFullYear();
        const month = String(current.getMonth() + 1).padStart(2, '0');
        dates.push(`${year}-${month}-01`);
        // 增加一个月（自动处理年份变化）
        current.setMonth(current.getMonth() + 1);
      }

      return dates;
    },
    //辅助函数：对输入的日期，形成向后12个月的月度信息，格式：YYYY-dd-01;
    generateDateRange(currentDate) {
      const dates = [];
      const year = currentDate.getFullYear();
      const month = currentDate.getMonth() + 1; // 月份从0开始，所以要加1

      // 生成前10个月的日期
      for (let i = 10; i > 0; i--) {
        const prevYear = month - i < 1 ? year - 1 : year;
        const prevMonth = month - i < 1 ? 12 + (month - i) : month - i;
        const dateStr = `${prevYear}-${prevMonth.toString().padStart(2, '0')}-01`;
        dates.push(dateStr);
      }

      // 添加当前月的1号
      dates.push(`${year}-${month.toString().padStart(2, '0')}-01`);

      // 生成后1个月的日期
      const nextYear = month + 1 > 12 ? year + 1 : year;
      const nextMonth = month + 1 > 12 ? 1 : month + 1;
      dates.push(`${nextYear}-${nextMonth.toString().padStart(2, '0')}-01`);

      return dates;
    },
    //辅助函数：知道当前月，然后形成一个新的数组，得到当前月及下一个月，主要用在筛选当月数据形式的内容上。日的部分：01
    generateNextMonthDates(dateStr) {
      const [year, month] = dateStr.split('-').map(Number);

      // 当前日期
      const currentDate = dateStr;

      // 计算下一个月的日期
      let nextYear = year;
      let nextMonth = month + 1;

      if (nextMonth > 12) {
        nextMonth = 1;
        nextYear += 1;
      }

      // 格式化为 "YYYY-MM-DD"
      const nextMonthDateStr = `${nextYear}-${nextMonth.toString().padStart(2, '0')}-01`;

      // 返回包含当前日期和下一个月日期的数组
      return [currentDate, nextMonthDateStr];
    },
    //画趋势图
    initChart() {
      //数据归零
      this.moonAchieveChartEBOption.series[0].data=[]
      this.moonAchieveChartEBOption.series[1].data=[]
      this.yearAchieveChartEBOption.series[0].data=[]
      this.yearAchieveChartEBOption.series[1].data=[]
      this.moonAchieveChartENOption.series[0].data=[]
      this.moonAchieveChartENOption.series[1].data=[]
      this.yearAchieveChartENOption.series[0].data=[]
      this.yearAchieveChartENOption.series[1].data=[]
      this.moonAchieveChartEBOptionIptv3.series[0].data=[]
      this.moonAchieveChartEBOptionIptv3.series[1].data=[]
      this.yearAchieveChartEBOptionIptv3.series[0].data=[]
      this.yearAchieveChartEBOptionIptv3.series[1].data=[]
      this.moonAchieveChartENOptionIptv3.series[0].data=[]
      this.moonAchieveChartENOptionIptv3.series[1].data=[]
      this.yearAchieveChartENOptionIptv3.series[0].data=[]
      this.yearAchieveChartENOptionIptv3.series[1].data=[]
      //计算EB的月度达成趋势(零公里）
      let moonAchListEB0=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === '零公里' &&
          item.engineType === 'EB'
      )
      //按照月份排序；
      moonAchListEB0.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListEB0.length; i++) {
        this.moonAchieveChartEBOption.series[0].data.push(moonAchListEB0[i].moonTargetVal)
        this.moonAchieveChartEBOption.series[1].data.push(moonAchListEB0[i].moonAchieve)

        this.yearAchieveChartEBOption.series[0].data.push(moonAchListEB0[i].addUpTargetVal)
        this.yearAchieveChartEBOption.series[1].data.push(moonAchListEB0[i].addUpAchieve)
        //更新Y轴的最大值(月度）
        if (moonAchListEB0[i].moonTargetVal>this.moonAchieveChartEBOption.yAxis.max){
          this.moonAchieveChartEBOption.yAxis.max=moonAchListEB0[i].moonTargetVal
        }
        if (moonAchListEB0[i].moonAchieve>this.moonAchieveChartEBOption.yAxis.max){
          this.moonAchieveChartEBOption.yAxis.max=moonAchListEB0[i].moonAchieve
        }
        //更新Y轴的最大值（累计）
        if (moonAchListEB0[i].addUpTargetVal>this.yearAchieveChartEBOption.yAxis.max){
          this.yearAchieveChartEBOption.yAxis.max=moonAchListEB0[i].addUpTargetVal
        }
        if (moonAchListEB0[i].addUpAchieve>this.yearAchieveChartEBOption.yAxis.max){
          this.yearAchieveChartEBOption.yAxis.max=moonAchListEB0[i].addUpAchieve
        }
      }

      //计算EN的月度达成趋势(零公里）
      let moonAchListEN0=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === '零公里' &&
          item.engineType === 'EN'
      )
      //按照月份排序；
      moonAchListEN0.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListEN0.length; i++) {
        this.moonAchieveChartENOption.series[0].data.push(moonAchListEN0[i].moonTargetVal)
        this.moonAchieveChartENOption.series[1].data.push(moonAchListEN0[i].moonAchieve)

        this.yearAchieveChartENOption.series[0].data.push(moonAchListEN0[i].addUpTargetVal)
        this.yearAchieveChartENOption.series[1].data.push(moonAchListEN0[i].addUpAchieve)
        //更新Y轴的最大值
        if (moonAchListEN0[i].moonTargetVal>this.moonAchieveChartENOption.yAxis.max){
          this.moonAchieveChartENOption.yAxis.max=moonAchListEN0[i].moonTargetVal
        }
        if (moonAchListEN0[i].moonAchieve>this.moonAchieveChartENOption.yAxis.max){
          this.moonAchieveChartENOption.yAxis.max=moonAchListEN0[i].moonAchieve
        }
        //更新Y轴的最大值(累计）
        if (moonAchListEN0[i].addUpTargetVal>this.yearAchieveChartENOption.yAxis.max){
          this.yearAchieveChartENOption.yAxis.max=moonAchListEN0[i].addUpTargetVal
        }
        if (moonAchListEN0[i].addUpAchieve>this.yearAchieveChartENOption.yAxis.max){
          this.yearAchieveChartENOption.yAxis.max=moonAchListEN0[i].addUpAchieve
        }
      }

      //计算EB的IPTV3的数据
      let moonAchListEBIptv3=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === 'IPTV3' &&
          item.engineType === 'EB'
      )
      //按照月份排序；
      moonAchListEBIptv3.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListEBIptv3.length; i++) {
        this.moonAchieveChartEBOptionIptv3.series[0].data.push(moonAchListEBIptv3[i].moonTargetVal)
        this.moonAchieveChartEBOptionIptv3.series[1].data.push(moonAchListEBIptv3[i].moonAchieve)

        this.yearAchieveChartEBOptionIptv3.series[0].data.push(moonAchListEBIptv3[i].addUpTargetVal)
        this.yearAchieveChartEBOptionIptv3.series[1].data.push(moonAchListEBIptv3[i].addUpAchieve)
        //更新Y轴的最大值
        if (moonAchListEBIptv3[i].moonTargetVal>this.moonAchieveChartEBOptionIptv3.yAxis.max){
          this.moonAchieveChartEBOptionIptv3.yAxis.max=moonAchListEBIptv3[i].moonTargetVal
        }
        if (moonAchListEBIptv3[i].moonAchieve>this.moonAchieveChartEBOptionIptv3.yAxis.max){
          this.moonAchieveChartEBOptionIptv3.yAxis.max=moonAchListEBIptv3[i].moonAchieve
        }

        //更新Y轴的最大值(累计）
        if (moonAchListEBIptv3[i].addUpTargetVal>this.yearAchieveChartEBOptionIptv3.yAxis.max){
          this.yearAchieveChartEBOptionIptv3.yAxis.max=moonAchListEBIptv3[i].addUpTargetVal
        }
        if (moonAchListEBIptv3[i].addUpAchieve>this.yearAchieveChartEBOptionIptv3.yAxis.max){
          this.yearAchieveChartEBOptionIptv3.yAxis.max=moonAchListEBIptv3[i].addUpAchieve
        }
      }

      //计算EN的IPTV3的数据
      let moonAchListENIptv3=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === 'IPTV3' &&
          item.engineType === 'EN'
      )
      //按照月份排序；
      moonAchListENIptv3.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListENIptv3.length; i++) {
        this.moonAchieveChartENOptionIptv3.series[0].data.push(moonAchListENIptv3[i].moonTargetVal)
        this.moonAchieveChartENOptionIptv3.series[1].data.push(moonAchListENIptv3[i].moonAchieve)

        this.yearAchieveChartENOptionIptv3.series[0].data.push(moonAchListENIptv3[i].addUpTargetVal)
        this.yearAchieveChartENOptionIptv3.series[1].data.push(moonAchListENIptv3[i].addUpAchieve)
        //更新Y轴的最大值
        if (moonAchListENIptv3[i].moonTargetVal>this.moonAchieveChartENOptionIptv3.yAxis.max){
          this.moonAchieveChartENOptionIptv3.yAxis.max=moonAchListENIptv3[i].moonTargetVal
        }
        if (moonAchListENIptv3[i].moonAchieve>this.moonAchieveChartENOptionIptv3.yAxis.max){
          this.moonAchieveChartENOptionIptv3.yAxis.max=moonAchListENIptv3[i].moonAchieve
        }

        //更新Y轴的最大值(累计值）
        if (moonAchListENIptv3[i].addUpTargetVal>this.yearAchieveChartENOptionIptv3.yAxis.max){
          this.yearAchieveChartENOptionIptv3.yAxis.max=moonAchListENIptv3[i].addUpTargetVal
        }
        if (moonAchListENIptv3[i].addUpAchieve>this.yearAchieveChartENOptionIptv3.yAxis.max){
          this.yearAchieveChartENOptionIptv3.yAxis.max=moonAchListENIptv3[i].addUpAchieve
        }
      }

      //计算EB的IPTV12的数据
      let moonAchListEBIptv12=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === 'IPTV12' &&
          item.engineType === 'EB'
      )
      //按照月份排序；
      moonAchListEBIptv12.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListEBIptv12.length; i++) {
        this.moonAchieveChartEBOptionIptv12.series[0].data.push(moonAchListEBIptv12[i].moonTargetVal)
        this.moonAchieveChartEBOptionIptv12.series[1].data.push(moonAchListEBIptv12[i].moonAchieve)

        this.yearAchieveChartEBOptionIptv12.series[0].data.push(moonAchListEBIptv12[i].addUpTargetVal)
        this.yearAchieveChartEBOptionIptv12.series[1].data.push(moonAchListEBIptv12[i].addUpAchieve)
        //更新Y轴的最大值
        if (moonAchListEBIptv12[i].moonTargetVal>this.moonAchieveChartEBOptionIptv12.yAxis.max){
          this.moonAchieveChartEBOptionIptv12.yAxis.max=moonAchListEBIptv12[i].moonTargetVal
        }
        if (moonAchListEBIptv12[i].moonAchieve>this.moonAchieveChartEBOptionIptv12.yAxis.max){
          this.moonAchieveChartEBOptionIptv12.yAxis.max=moonAchListEBIptv12[i].moonAchieve
        }
        //更新Y轴的最大值(累计）
        if (moonAchListEBIptv12[i].addUpTargetVal>this.yearAchieveChartEBOptionIptv12.yAxis.max){
          this.yearAchieveChartEBOptionIptv12.yAxis.max=moonAchListEBIptv12[i].addUpTargetVal
        }
        if (moonAchListEBIptv12[i].addUpAchieve>this.yearAchieveChartEBOptionIptv12.yAxis.max){
          this.yearAchieveChartEBOptionIptv12.yAxis.max=moonAchListEBIptv12[i].addUpAchieve
        }
      }
      //计算EN的IPTV12的数据
      let moonAchListENIptv12=this.iptvReportData.filter(item =>
          item.yearData === String(this.yearSelect) &&
          item.targetName === 'IPTV12' &&
          item.engineType === 'EN'
      )
      //按照月份排序；
      moonAchListENIptv12.sort((a, b) => a.moonDate.localeCompare(b.moonDate));
      //组合X值的数据
      for (let i = 0; i < moonAchListENIptv12.length; i++) {
        this.moonAchieveChartENOptionIptv12.series[0].data.push(moonAchListENIptv12[i].moonTargetVal)
        this.moonAchieveChartENOptionIptv12.series[1].data.push(moonAchListENIptv12[i].moonAchieve)

        this.yearAchieveChartENOptionIptv12.series[0].data.push(moonAchListENIptv12[i].addUpTargetVal)
        this.yearAchieveChartENOptionIptv12.series[1].data.push(moonAchListENIptv12[i].addUpAchieve)
        //更新Y轴的最大值
        if (moonAchListENIptv12[i].moonTargetVal>this.moonAchieveChartENOptionIptv12.yAxis.max){
          this.moonAchieveChartENOptionIptv12.yAxis.max=moonAchListENIptv12[i].moonTargetVal
        }
        if (moonAchListENIptv12[i].moonAchieve>this.moonAchieveChartENOptionIptv12.yAxis.max){
          this.moonAchieveChartENOptionIptv12.yAxis.max=moonAchListENIptv12[i].moonAchieve
        }
        //更新Y轴的最大值
        if (moonAchListENIptv12[i].addUpTargetVal>this.yearAchieveChartENOptionIptv12.yAxis.max){
          this.yearAchieveChartENOptionIptv12.yAxis.max=moonAchListENIptv12[i].addUpTargetVal
        }
        if (moonAchListENIptv12[i].addUpAchieve>this.yearAchieveChartENOptionIptv12.yAxis.max){
          this.yearAchieveChartENOptionIptv12.yAxis.max=moonAchListENIptv12[i].addUpAchieve
        }
      }

      //进行画图
      this.$nextTick(() => {
        //画EB的零公里
        if (!this.moonAchieveChartEB) {
          this.moonAchieveChartEB = echarts.init(this.$refs.moonAchieveChartEB)
        }
        this.moonAchieveChartEB.setOption(this.moonAchieveChartEBOption)
        //画EB的零公里(累计）
        if (!this.yearAchieveChartEB) {
          this.yearAchieveChartEB = echarts.init(this.$refs.yearAchieveChartEB)
        }
        this.yearAchieveChartEB.setOption(this.yearAchieveChartEBOption)
        //画EN的零公里
        if (!this.moonAchieveChartEN) {
          this.moonAchieveChartEN = echarts.init(this.$refs.moonAchieveChartEN)
        }
        this.moonAchieveChartEN.setOption(this.moonAchieveChartENOption)
        //画EN的零公里(累计)
        if (!this.yearAchieveChartEN) {
          this.yearAchieveChartEN = echarts.init(this.$refs.yearAchieveChartEN)
        }
        this.yearAchieveChartEN.setOption(this.yearAchieveChartENOption)
        //画EB的IPTV3
        if (!this.moonAchieveChartEBIptv3) {
          this.moonAchieveChartEBIptv3 = echarts.init(this.$refs.moonAchieveChartEBIptv3)
        }
        this.moonAchieveChartEBIptv3.setOption(this.moonAchieveChartEBOptionIptv3)
        //画EB的IPTV3(累计）
        if (!this.yearAchieveChartEBIptv3) {
          this.yearAchieveChartEBIptv3 = echarts.init(this.$refs.yearAchieveChartEBIptv3)
        }
        this.yearAchieveChartEBIptv3.setOption(this.yearAchieveChartEBOptionIptv3)
        //画EN的IPTV3
        if (!this.moonAchieveChartENIptv3) {
          this.moonAchieveChartENIptv3 = echarts.init(this.$refs.moonAchieveChartENIptv3)
        }
        this.moonAchieveChartENIptv3.setOption(this.moonAchieveChartENOptionIptv3)
        //画EN的IPTV3（累计）
        if (!this.yearAchieveChartENIptv3) {
          this.yearAchieveChartENIptv3 = echarts.init(this.$refs.yearAchieveChartENIptv3)
        }
        this.yearAchieveChartENIptv3.setOption(this.yearAchieveChartENOptionIptv3)
        //画EB的IPTV12
        if (!this.moonAchieveChartEBIptv12) {
          this.moonAchieveChartEBIptv12 = echarts.init(this.$refs.moonAchieveChartEBIptv12)
        }
        this.moonAchieveChartEBIptv12.setOption(this.moonAchieveChartEBOptionIptv12)
        //画EB的IPTV12(累计）
        if (!this.yearAchieveChartEBIptv12) {
          this.yearAchieveChartEBIptv12 = echarts.init(this.$refs.yearAchieveChartEBIptv12)
        }
        this.yearAchieveChartEBIptv12.setOption(this.yearAchieveChartEBOptionIptv12)
        //画EN的IPTV12
        if (!this.moonAchieveChartENIptv12) {
          this.moonAchieveChartENIptv12 = echarts.init(this.$refs.moonAchieveChartENIptv12)
        }
        this.moonAchieveChartENIptv12.setOption(this.moonAchieveChartENOptionIptv12)
        //画EN的IPTV12(累计）
        if (!this.yearAchieveChartENIptv12) {
          this.yearAchieveChartENIptv12 = echarts.init(this.$refs.yearAchieveChartENIptv12)
        }
        this.yearAchieveChartENIptv12.setOption(this.yearAchieveChartENOptionIptv12)
      })
    }

  },
  mounted() {
    this.inquiry()
    this.problemData=[]
    this.warrantyClaimData=[]
    this.noGoodPartAssData=[]
    this.zeroKilometersData=[]
    this.inquiryZeroKilometersAll()
    this.inquiryProblemOneFindSeveralVal('materialPlateName','市场问题',)
    this.inquiryProductListBaseComponentAll()
    this.inquiryWarrantyClaimAll()//调取所有的索赔信息
    this.inquiryNoGoodPartAll()
    this.inquiryIptvReportAll();
    this.buttonDoe=5
  },
  //组件销毁前的函数
  beforeDestroy() {
    // 组件销毁前，销毁 wangEditor 实例
    if (this.editor) {
      this.editor.destroy();
      this.editor = null;
    }
  },
}
</script>

<style scoped>
/* 主体左侧的工作步骤栏用到的数据包围的div的样式*/

.el-footer {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  border-left-color: white;
  border-top: white;
}

.el-aside {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  height: 89vh;
}

.el-main {
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-left-color: white;
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
}

body > .el-container {
  margin-bottom: 40px;
}

.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
  line-height: 260px;
}

.el-container:nth-child(7) .el-aside {
  line-height: 320px;
}

.headMain{
  color: #ffffff; /* 设置字体颜色为红色 */
  font-size: 18px;
}
.center-text {
  /* 使用 margin-left 和 margin-right auto 来实现居中效果 */
  margin-left: auto;
  margin-right: auto;
  /* 注意：如果 header 内只有这两个元素，你可能不需要 margin-right: auto */
}

/*自定义样式*/

.blue-border {
  border-collapse: collapse; /* 合并相邻的边框 */
  width: 100%; /* 设置表格宽度为100% */
}

.blue-border th,
.blue-border td {
  border: 1px solid blue; /* 设置边框颜色为蓝色，宽度为1px */
  padding: 8px; /* 设置单元格内边距，以使内容更清晰可见 */
}

/* 如果你只想为thead和tbody中的单元格设置边框，可以分别指定 */
.blue-border thead th,
.blue-border tbody td {
  /* 这里可以添加额外的thead或tbody特定的样式 */
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}
.clearfix:after {
  clear: both
}
.dialog-footer {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center; /* 垂直居中（如果按钮不是单行的话）*/
  padding: 10px; /* 你可以根据需要调整内边距 */
}

.container {
  display: flex;
  align-items: center; /* 使子元素垂直居中 */
}

.flex-item {
  display: flex; /* 使上传组件内的按钮也能正常显示 */
  flex: 1; /* 让上传组件占据剩余空间，与添加问题的按钮保持相同的比例 */
  justify-content: flex-start; /* 如果需要，可以调整上传组件内按钮的位置 */
  margin-left: 10px; /* 添加一些间距，使两个元素不紧贴在一起 */
}

.flex-button {
  width: 100%; /* 让按钮宽度充满上传组件的宽度 */
  box-sizing: border-box; /* 确保宽度包括padding和border */
}
table {
  border-collapse: collapse;
  width: 100%;
  font-family: Arial, sans-serif;
}
th, td {
  border: 1px solid #1890ff; /* 蓝色边框 */
  padding: 8px;
  text-align: center;
}
th {
  background-color: #e6f7ff; /* 表头背景色 */
}
/* 自定义标题栏样式 */
.custom-header {
  background-color: #b3cde0;  /* 淡蓝色 */
  color: #000;  /* 标题文字颜色 */
}

/* 修改表格的边框颜色为淡蓝色 */
.el-table th, .el-table td {
  border: 1px solid #b3cde0;  /* 淡蓝色边框 */
}
</style>